From ff4482064ce6587c70c66deb5749c86f5927055d Mon Sep 17 00:00:00 2001 From: Johannes Rudolph Date: Wed, 24 Oct 2012 10:41:40 +0200 Subject: [PATCH] dry-up map creation --- .../sbt/graph/IvyGraphMLDependencies.scala | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/scala/net/virtualvoid/sbt/graph/IvyGraphMLDependencies.scala b/src/main/scala/net/virtualvoid/sbt/graph/IvyGraphMLDependencies.scala index 36c5819ef..bf368c6c9 100644 --- a/src/main/scala/net/virtualvoid/sbt/graph/IvyGraphMLDependencies.scala +++ b/src/main/scala/net/virtualvoid/sbt/graph/IvyGraphMLDependencies.scala @@ -47,14 +47,18 @@ object IvyGraphMLDependencies extends App { def module(id: ModuleId): Module = modules(id) - lazy val dependencyMap: Map[ModuleId, Seq[Module]] = { + lazy val dependencyMap: Map[ModuleId, Seq[Module]] = + createMap(identity) + + lazy val reverseDependencyMap: Map[ModuleId, Seq[Module]] = + createMap { case (a, b) => (b, a) } + + def createMap(bindingFor: ((ModuleId, ModuleId)) => (ModuleId, ModuleId)): Map[ModuleId, Seq[Module]] = { val m = new HashMap[ModuleId, MSet[Module]] with MultiMap[ModuleId, Module] - edges.foreach { case (from, to) => m.addBinding(from, module(to)) } - m.toMap.mapValues(_.toSeq.sortBy(_.id.idString)) - } - lazy val reverseDependencyMap: Map[ModuleId, Seq[Module]] = { - val m = new HashMap[ModuleId, MSet[Module]] with MultiMap[ModuleId, Module] - edges.foreach { case (from, to) => m.addBinding(to, module(from)) } + edges.foreach { entry => + val (f, t) = bindingFor(entry) + m.addBinding(f, module(t)) + } m.toMap.mapValues(_.toSeq.sortBy(_.id.idString)) } }