diff options
Diffstat (limited to 'sources')
-rw-r--r-- | sources/scala/collection/mutable/JavaMapAdaptor.scala | 60 | ||||
-rw-r--r-- | sources/scala/collection/mutable/JavaSetAdaptor.scala | 38 |
2 files changed, 98 insertions, 0 deletions
diff --git a/sources/scala/collection/mutable/JavaMapAdaptor.scala b/sources/scala/collection/mutable/JavaMapAdaptor.scala new file mode 100644 index 0000000000..b575d172c0 --- /dev/null +++ b/sources/scala/collection/mutable/JavaMapAdaptor.scala @@ -0,0 +1,60 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2003, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +** $Id$ +\* */ + +package scala.collection.mutable; + + +/** This class can be used as an adaptor to create mutable maps from + * Java classes that implementat the <code>java.util.Map</code> interface. + * + * @author Matthias Zenger + * @version 1.0, 21/07/2003 + */ +class JavaMapAdaptor[A, B](jmap: java.util.Map) extends Map[A, B] { + + def size: Int = jmap.size(); + + def get(key: A): Option[B] = + if (jmap.containsKey(key)) Some(jmap.get(key).asInstanceOf[B]) else None; + + override def isEmpty: Boolean = jmap.isEmpty(); + + override def apply(key: A): B = jmap.get(key).asInstanceOf[B]; + + override def contains(key: A): Boolean = jmap.containsKey(key); + + override def isDefinedAt(key: A) = jmap.containsKey(key); + + override def keys: Iterator[A] = new Iterator[A] { + val iter = jmap.keySet().iterator(); + def hasNext = iter.hasNext(); + def next = iter.next().asInstanceOf[A]; + } + + override def values: Iterator[B] = new Iterator[B] { + val iter = jmap.values().iterator(); + def hasNext = iter.hasNext(); + def next = iter.next().asInstanceOf[B]; + } + + def elements: Iterator[Pair[A, B]] = new Iterator[Pair[A, B]] { + val iter = jmap.keySet().iterator(); + def hasNext = iter.hasNext(); + def next = { + val key = iter.next().asInstanceOf[A]; + Pair(key, apply(key)) + } + } + + def update(key: A, value: B): Unit = { val x = jmap.put(key, value); } + + def -=(key: A): Unit = { val x = jmap.remove(key); } + + override def clear: Unit = jmap.clear(); +} diff --git a/sources/scala/collection/mutable/JavaSetAdaptor.scala b/sources/scala/collection/mutable/JavaSetAdaptor.scala new file mode 100644 index 0000000000..39f6ae5755 --- /dev/null +++ b/sources/scala/collection/mutable/JavaSetAdaptor.scala @@ -0,0 +1,38 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2003, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +** $Id$ +\* */ + +package scala.collection.mutable; + + +/** This class can be used as an adaptor to create mutable sets from + * Java classes that implement interface <code>java.util.Set</code>. + * + * @author Matthias Zenger + * @version 1.0, 19/09/2003 + */ +class JavaSetAdaptor[A, B](jset: java.util.Set) extends Set[A] { + + def size: Int = jset.size(); + + override def isEmpty: Boolean = jset.isEmpty(); + + def contains(elem: A): Boolean = jset.contains(elem); + + def elements: Iterator[A] = new Iterator[A] { + val iter = jset.iterator(); + def hasNext = iter.hasNext(); + def next = iter.next().asInstanceOf[A]; + } + + def +=(elem: A): Unit = { val x = jset.add(elem); } + + def -=(elem: A): Unit = { val x = jset.remove(elem); } + + def clear: Unit = jset.clear(); +} |