summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorMatthias Zenger <mzenger@gmail.com>2003-09-23 10:03:33 +0000
committerMatthias Zenger <mzenger@gmail.com>2003-09-23 10:03:33 +0000
commitc8f0a7b6bd21b8207a25677c77ae896d1a35a967 (patch)
tree84202cf5679b07845c35e61da18173bfcc6ad261 /sources
parent83737b19d1c49042c6b04f30bac8979dc33205a7 (diff)
downloadscala-c8f0a7b6bd21b8207a25677c77ae896d1a35a967.tar.gz
scala-c8f0a7b6bd21b8207a25677c77ae896d1a35a967.tar.bz2
scala-c8f0a7b6bd21b8207a25677c77ae896d1a35a967.zip
Library classes for adapting Java collection cl...
Library classes for adapting Java collection classes to the Scala framework.
Diffstat (limited to 'sources')
-rw-r--r--sources/scala/collection/mutable/JavaMapAdaptor.scala60
-rw-r--r--sources/scala/collection/mutable/JavaSetAdaptor.scala38
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();
+}