diff options
Diffstat (limited to 'src/library/scala/collection/mutable/SetProxy.scala')
-rw-r--r-- | src/library/scala/collection/mutable/SetProxy.scala | 51 |
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() } +} |