summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Kossakowski <grek@google.com>2009-08-17 18:18:26 -0700
committerGrzegorz Kossakowski <grek@google.com>2009-08-17 18:18:26 -0700
commit1f6eaa9190dfb2d19bdb0045b715a22ce9315dd7 (patch)
treee66bcedfb021fdfc514ca4b25373e1f479bfd3b0
parent489874e17eca60e806f0c7d92838ac55884d02c2 (diff)
downloadgimd-1f6eaa9190dfb2d19bdb0045b715a22ce9315dd7.tar.gz
Remove JGit-specific handlers and make abstract classes concrete.
It turned out that implementation specific handlers do not carry any value so should be removed. This change simplifies code slightly because factory classes are not needed anymore. Signed-off-by: Grzegorz Kossakowski <grek@google.com>
-rw-r--r--src/main/scala/com/google/gimd/jgit/JGitFileHandler.scala17
-rw-r--r--src/main/scala/com/google/gimd/jgit/JGitMessageHandler.scala21
-rw-r--r--src/main/scala/com/google/gimd/query/FileHandler.scala2
-rw-r--r--src/main/scala/com/google/gimd/query/MessageHandler.scala6
-rw-r--r--src/main/scala/com/google/gimd/query/MessageQuery.scala8
-rw-r--r--src/test/scala/com/google/gimd/query/MessageQueryTestCase.scala9
6 files changed, 9 insertions, 54 deletions
diff --git a/src/main/scala/com/google/gimd/jgit/JGitFileHandler.scala b/src/main/scala/com/google/gimd/jgit/JGitFileHandler.scala
deleted file mode 100644
index 6e6c31b..0000000
--- a/src/main/scala/com/google/gimd/jgit/JGitFileHandler.scala
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2009 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gimd.jgit
-
-case class JGitFileHandler[T](file: JGitFile[T]) extends query.FileHandler(file)
diff --git a/src/main/scala/com/google/gimd/jgit/JGitMessageHandler.scala b/src/main/scala/com/google/gimd/jgit/JGitMessageHandler.scala
deleted file mode 100644
index 4c7e170..0000000
--- a/src/main/scala/com/google/gimd/jgit/JGitMessageHandler.scala
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2009 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gimd.jgit
-
-import query.{Handler, MessageHandler}
-
-case class JGitMessageHandler[T](parent: Either[JGitFileHandler[T], JGitMessageHandler[T]],
- message: Message)
- extends MessageHandler(parent.fold[Handler](identity, identity), message)
diff --git a/src/main/scala/com/google/gimd/query/FileHandler.scala b/src/main/scala/com/google/gimd/query/FileHandler.scala
index 1546db9..95d675b 100644
--- a/src/main/scala/com/google/gimd/query/FileHandler.scala
+++ b/src/main/scala/com/google/gimd/query/FileHandler.scala
@@ -16,4 +16,4 @@ package com.google.gimd.query
import file.File
-abstract class FileHandler[T](file: File[T]) extends Handler
+final case class FileHandler[T](file: File[T]) extends Handler
diff --git a/src/main/scala/com/google/gimd/query/MessageHandler.scala b/src/main/scala/com/google/gimd/query/MessageHandler.scala
index 5b83e64..d398dd8 100644
--- a/src/main/scala/com/google/gimd/query/MessageHandler.scala
+++ b/src/main/scala/com/google/gimd/query/MessageHandler.scala
@@ -14,8 +14,4 @@
package com.google.gimd.query
-abstract class MessageHandler(parent: Handler, message: Message) extends Handler
-
-object MessageHandler {
- type Factory = ((Handler, Message) => MessageHandler)
-}
+final case class MessageHandler(parent: Handler, message: Message) extends Handler
diff --git a/src/main/scala/com/google/gimd/query/MessageQuery.scala b/src/main/scala/com/google/gimd/query/MessageQuery.scala
index 967dd33..9bbb0cc 100644
--- a/src/main/scala/com/google/gimd/query/MessageQuery.scala
+++ b/src/main/scala/com/google/gimd/query/MessageQuery.scala
@@ -16,9 +16,9 @@ package com.google.gimd.query
object MessageQuery {
- def simpleQuery[U, W](ut: UserType[W], m: Message, p: Predicate[U], parent: Handler,
- factory: MessageHandler.Factory): List[(MessageHandler,U)] = {
- val handler = factory(parent, m)
+ def simpleQuery[U, W](ut: UserType[W], m: Message, p: Predicate[U], parent: Handler):
+ List[(MessageHandler,U)] = {
+ val handler = MessageHandler(parent, m)
val matched = if (p.isType(ut.userTypeClass)) {
val value = ut.toUserObject(m).asInstanceOf[U]
@@ -32,7 +32,7 @@ object MessageQuery {
val childMatches = (for {
nm <- ut.children
childMessageFields = Message.filterMessageFields(m.all(nm.name))
- matches = childMessageFields.flatMap(simpleQuery(nm.userType, _, p, handler, factory))
+ matches = childMessageFields.flatMap(simpleQuery(nm.userType, _, p, handler))
} yield matches).flatMap(identity[List[(MessageHandler,U)]])
matched ++ childMatches
diff --git a/src/test/scala/com/google/gimd/query/MessageQueryTestCase.scala b/src/test/scala/com/google/gimd/query/MessageQueryTestCase.scala
index 4b49ca7..ded2592 100644
--- a/src/test/scala/com/google/gimd/query/MessageQueryTestCase.scala
+++ b/src/test/scala/com/google/gimd/query/MessageQueryTestCase.scala
@@ -44,8 +44,6 @@ class MessageQueryTestCase {
}
object MockParentHandler extends Handler
- case class MockMessageHandler(parent: Handler, message: Message)
- extends MessageHandler(parent, message)
@Test
def simpleQuery = {
@@ -54,16 +52,15 @@ class MessageQueryTestCase {
this.getClass.getResourceAsStream("simpleMessage.gimd")
)
val message = gimd.text.Parser.parse(reader)
- val factory = MockMessageHandler(_, _)
- val messageHandler = factory(MockParentHandler, message)
+ val messageHandler = MessageHandler(MockParentHandler, message)
val predicate = (child: Child) => child.property1 == true
val queryResult = MessageQuery.simpleQuery(SimpleMessageType, message, predicate,
- MockParentHandler, factory)
+ MockParentHandler)
val expectedChildren = List(Child("Child1", true), Child("Child3", true), Child("Child5", true))
val expectedMessages = expectedChildren.map(ChildType.toMessageBuffer(_).readOnly)
- val handlers = expectedMessages.map(factory(messageHandler, _))
+ val handlers = expectedMessages.map(MessageHandler(messageHandler, _))
val expectedResult = handlers zip expectedChildren
assertEquals(Set(expectedResult: _*), Set(queryResult: _*))