Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2014
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. class SortedMultiMap[K,V] private (private val delegate: SortedMap[K, Set[V]])
  2. (implicit ord: Ordering[K])
  3. extends SortedMap[K, Set[V]]
  4. with SortedMapLike[K, Set[V], SortedMultiMap[K,V]]
  5.  
  6. override def +[B1 >: Set[V]](kv: (K, B1)) = new SortedMultiMap(delegate + kv)
  7.  
  8. override def +[B1 >: Set[V]](kv: (K, B1)): SortedMap[K, B1] = delegate + kv // general case
  9. def +(kv: (K,Set[V])): SortedMultiMap[K, V] = new SortedMultiMap(delegate + kv) // specific case
  10.  
  11. override def +[B1 >: Set[V]](kv: (K, B1)) = new SortedMultiMap(delegate + kv)
  12.  
  13. override def +[B1 >: Set[V]](kv: (K, B1)): SortedMap[K, B1] = kv._2 match {
  14. // may need some massaging to persuade the compiler
  15. case v: Set[a] => new SortedMultiMap(delegate + (kv._1, v))
  16. case _ => delegate + kv
  17. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement