summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/SortedMap.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2009-05-08 16:33:15 +0000
committerMartin Odersky <odersky@gmail.com>2009-05-08 16:33:15 +0000
commit14a631a5fec42d04d0723355a0b93e482b5e4662 (patch)
treef639c2a22e89e193b9abea391993ecfd4d5326ee /src/library/scala/collection/SortedMap.scala
parent2379eb4ebbd28c8892b50a1d9fa8a687099eea4d (diff)
downloadscala-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.scala36
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;
}