summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/mutable/SetProxy.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/library/scala/collection/mutable/SetProxy.scala')
-rw-r--r--src/library/scala/collection/mutable/SetProxy.scala51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/library/scala/collection/mutable/SetProxy.scala b/src/library/scala/collection/mutable/SetProxy.scala
new file mode 100644
index 0000000000..4cd759a60d
--- /dev/null
+++ b/src/library/scala/collection/mutable/SetProxy.scala
@@ -0,0 +1,51 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2003, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+** $Id$
+\* */
+
+package scala.collection.mutable;
+
+
+/** This is a simple wrapper class for <code>scala.collection.mutable.Set</code>.
+ * It is most useful for assembling customized set abstractions
+ * dynamically using object composition and forwarding.
+ *
+ * @author Matthias Zenger
+ * @version 1.1, 09/05/2004
+ */
+trait SetProxy[A] extends Set[A] with scala.collection.SetProxy[A] {
+
+ def self: Set[A];
+
+ override def update(elem: A, included: Boolean): Unit = self(elem) = included;
+
+ def +=(elem: A): Unit = self += elem;
+
+ override def ++=(that: Iterable[A]): Unit = self ++= that;
+
+ override def ++=(it: Iterator[A]): Unit = self ++= it;
+
+ override def incl(elems: A*): Unit = self ++= elems;
+
+ def -=(elem: A): Unit = self -= elem;
+
+ override def --=(that: Iterable[A]): Unit = self --= that;
+
+ override def --=(it: Iterator[A]): Unit = self --= it;
+
+ override def excl(elems: A*): Unit = self --= elems;
+
+ override def intersect(that: Set[A]): Unit = self.intersect(that);
+
+ def clear: Unit = self.clear;
+
+ override def filter(p: A => Boolean): Unit = self.filter(p);
+
+ override def <<(cmd: Message[A]): Unit = self << cmd;
+
+ override def clone(): Set[A] = new SetProxy[A] { def self = SetProxy.this.self.clone() }
+}