Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.scalatra.util
- import scala.collection.generic.CanBuildFrom
- import scala.collection.immutable.{HashMap, Map, MapLike}
- import scala.collection.mutable.{Builder, MapBuilder}
- class MultiMap
- extends HashMap[String, Seq[String]]
- with MapLike[String, Seq[String], MultiMap]
- with MapWithIndifferentAccess[Seq[String]]
- {
- override def get(key: String): Option[Seq[String]] =
- (super.get(key) orElse super.get(key + "[]"))
- override def default(key: String): Seq[String] = Seq.empty
- override def empty: MultiMap = MultiMap.empty
- }
- object MultiMap {
- def apply(elems: (String, Seq[String])*): MultiMap = (newBuilder ++= elems).result
- def apply(map: scala.collection.Map[String, Seq[String]]): MultiMap =
- apply(map.toSeq:_*)
- def newBuilder: Builder[(String, Seq[String]), MultiMap] =
- new MapBuilder[String, Seq[String], MultiMap](empty)
- implicit def canBuildFrom: CanBuildFrom[Map[String, Seq[String]], (String, Seq[String]), MultiMap] = {
- new CanBuildFrom[Map[String, Seq[String]], (String, Seq[String]), MultiMap] {
- def apply(from: Map[String, Seq[String]]) = newBuilder
- def apply() = newBuilder
- }
- }
- def empty = new MultiMap
- }
Add Comment
Please, Sign In to add comment