diff options
author | Grzegorz Kossakowski <grek@google.com> | 2009-08-17 18:18:26 -0700 |
---|---|---|
committer | Grzegorz Kossakowski <grek@google.com> | 2009-08-17 18:18:26 -0700 |
commit | 1f6eaa9190dfb2d19bdb0045b715a22ce9315dd7 (patch) | |
tree | e66bcedfb021fdfc514ca4b25373e1f479bfd3b0 | |
parent | 489874e17eca60e806f0c7d92838ac55884d02c2 (diff) | |
download | gimd-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>
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: _*)) |