diff options
author | Martin Odersky <odersky@gmail.com> | 2009-05-08 16:33:15 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2009-05-08 16:33:15 +0000 |
commit | 14a631a5fec42d04d0723355a0b93e482b5e4662 (patch) | |
tree | f639c2a22e89e193b9abea391993ecfd4d5326ee /src/library/scala/collection/SortedMap.scala | |
parent | 2379eb4ebbd28c8892b50a1d9fa8a687099eea4d (diff) | |
download | scala-14a631a5fec42d04d0723355a0b93e482b5e4662.tar.gz scala-14a631a5fec42d04d0723355a0b93e482b5e4662.tar.bz2 scala-14a631a5fec42d04d0723355a0b93e482b5e4662.zip |
massive new collections checkin.
Diffstat (limited to 'src/library/scala/collection/SortedMap.scala')
-rw-r--r-- | src/library/scala/collection/SortedMap.scala | 36 |
1 files changed, 9 insertions, 27 deletions
diff --git a/src/library/scala/collection/SortedMap.scala b/src/library/scala/collection/SortedMap.scala index e2bbdeab8f..55eab25648 100644 --- a/src/library/scala/collection/SortedMap.scala +++ b/src/library/scala/collection/SortedMap.scala @@ -7,38 +7,20 @@ \* */ // $Id$ +package scala.collection -package scala.collection; +import generic._ /** A map whose keys are sorted. * * @author Sean McDirmid + * @author Martin Odersky + * @version 2.8 */ -trait SortedMap[K,+E] extends Map[K,E] with Sorted[K,Tuple2[K,E]] { - override def firstKey : K = elements.next._1; - override def lastKey : K = { - val i = elements; - var last : K = i.next._1; - while (i.hasNext) last = i.next._1; - last; - } +trait SortedMap[A, +B] extends Map[A, B] with SortedMapTemplate[A, B, SortedMap[A, B]] { + /** Needs to be overridden in subclasses. */ + override def empty: SortedMap[A, B] = throw new UnsupportedOperationException("SortedMap.empty") + override protected[this] def newBuilder : Builder[(A, B), SortedMap[A, B], Any] = + throw new UnsupportedOperationException("SortedMap.newBuilder") - // XXX: implement default version - override def rangeImpl(from : Option[K], until : Option[K]) : SortedMap[K,E]; - override def from(from: K) = rangeImpl(Some(from), None); - override def until(until: K) = rangeImpl(None, Some(until)); - override def range(from: K, until: K) = rangeImpl(Some(from),Some(until)); - - protected class DefaultKeySet extends SortedSet[K] { - def size = SortedMap.this.size - def contains(key : K) = SortedMap.this.contains(key) - def elements = SortedMap.this.elements.map(_._1) - def compare(k0 : K, k1 : K) = SortedMap.this.compare(k0, k1); - override def rangeImpl(from : Option[K], until : Option[K]) : SortedSet[K] = { - val map = SortedMap.this.rangeImpl(from,until); - new map.DefaultKeySet; - } - } - // XXX: implement default version - override def keySet : SortedSet[K] = new DefaultKeySet; } |