summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/mutable/ImmutableMapAdaptor.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2007-01-03 15:56:13 +0000
committerMartin Odersky <odersky@gmail.com>2007-01-03 15:56:13 +0000
commita961d3dcd6f93ee006cff1d386052bf62326739a (patch)
tree5af3312932236340708522dfd078f32beed20519 /src/library/scala/collection/mutable/ImmutableMapAdaptor.scala
parent02a45e20bb6f68808708dca377bc72ccaf5bba3d (diff)
downloadscala-a961d3dcd6f93ee006cff1d386052bf62326739a.tar.gz
scala-a961d3dcd6f93ee006cff1d386052bf62326739a.tar.bz2
scala-a961d3dcd6f93ee006cff1d386052bf62326739a.zip
1.
Diffstat (limited to 'src/library/scala/collection/mutable/ImmutableMapAdaptor.scala')
-rw-r--r--src/library/scala/collection/mutable/ImmutableMapAdaptor.scala31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/library/scala/collection/mutable/ImmutableMapAdaptor.scala b/src/library/scala/collection/mutable/ImmutableMapAdaptor.scala
index 16007865d1..18fd6885f6 100644
--- a/src/library/scala/collection/mutable/ImmutableMapAdaptor.scala
+++ b/src/library/scala/collection/mutable/ImmutableMapAdaptor.scala
@@ -19,7 +19,8 @@ package scala.collection.mutable
* return the representation of an empty map.
*
* @author Matthias Zenger
- * @version 1.0, 21/07/2003
+ * @author Martin Odersky
+ * @version 2.0, 01/01/2007
*/
[serializable]
class ImmutableMapAdaptor[A, B](protected var imap: immutable.Map[A, B])
@@ -40,25 +41,37 @@ extends Map[A, B]
override def keys: Iterator[A] = imap.keys
+ override def keySet: collection.Set[A] = imap.keySet
+
override def values: Iterator[B] = imap.values
def elements: Iterator[Pair[A, B]] = imap.elements
- override def foreach(f: Pair[A, B] => Unit) = imap.foreach(f)
-
override def toList: List[Pair[A, B]] = imap.toList
- override def toString() = imap.toString()
-
def update(key: A, value: B): Unit = { imap = imap.update(key, value) }
- def -=(key: A): Unit = { imap = imap - key }
+ def -= (key: A): Unit = { imap = imap - key }
override def clear: Unit = { imap = imap.empty }
- override def map(f: Pair[A, B] => B): Unit = { imap = imap.map(f) }
+ override def transform(f: (A, B) => B): Unit = { imap = imap.transform(f) }
- override def filter(p: Pair[A, B] => Boolean): Unit = { imap = imap.filter(p) }
+ [deprecated] override def map[C](f: Pair[A, B] => C): Iterable[C] = {
+ val f1 = f.asInstanceOf[Pair[A, B] => B]
+ imap = imap transform { (x, y) => f1(Pair(x, y)) }
+ null
+ }
- override def mappingToString(p: Pair[A, B]) = imap.mappingToString(p)
+ /** @deprecated use retain instead */
+ [deprecated] override def filter(p: Pair[A, B] => Boolean): Iterable[Pair[A, B]] = {
+ imap = imap.filter(p)
+ this
+ }
+
+ override def retain(p: (A, B) => Boolean): Unit = {
+ imap = imap.filter(xy => p(xy._1, xy._2))
+ }
+
+ override def toString() = imap.toString()
}