summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorstepancheg <stepancheg@epfl.ch>2008-06-27 09:22:09 +0000
committerstepancheg <stepancheg@epfl.ch>2008-06-27 09:22:09 +0000
commit73006bc163947638aecd20d1b0be31467625751f (patch)
tree1c94638b5ac360b5ab2b67a1061abdffd03dc6dc /src
parentfffb8c10317cc92524b52c8d353df034b0bedff5 (diff)
downloadscala-73006bc163947638aecd20d1b0be31467625751f.tar.gz
scala-73006bc163947638aecd20d1b0be31467625751f.tar.bz2
scala-73006bc163947638aecd20d1b0be31467625751f.zip
Add RandomAccessSeqProxy
Diffstat (limited to 'src')
-rw-r--r--src/library/scala/IterableProxy.scala2
-rw-r--r--src/library/scala/RandomAccessSeqProxy.scala33
-rw-r--r--src/library/scala/SeqProxy.scala2
-rw-r--r--src/library/scala/collection/mutable/PriorityQueueProxy.scala6
4 files changed, 36 insertions, 7 deletions
diff --git a/src/library/scala/IterableProxy.scala b/src/library/scala/IterableProxy.scala
index 1c51ca627a..361113a7a4 100644
--- a/src/library/scala/IterableProxy.scala
+++ b/src/library/scala/IterableProxy.scala
@@ -23,7 +23,7 @@ import scala.collection.mutable.Buffer
*/
trait IterableProxy[+A] extends Iterable[A] with Proxy {
- def self: Iterable[A]
+ override def self: Iterable[A]
override def elements: Iterator[A] = self.elements
@deprecated
override def concat [B >: A](that: Iterable[B]): Collection[B] = self concat that
diff --git a/src/library/scala/RandomAccessSeqProxy.scala b/src/library/scala/RandomAccessSeqProxy.scala
new file mode 100644
index 0000000000..a5fb245f97
--- /dev/null
+++ b/src/library/scala/RandomAccessSeqProxy.scala
@@ -0,0 +1,33 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2003-2008, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+
+package scala
+
+/** This class implements a proxy for random access sequences. It forwards
+ * all calls to a different sequence object.
+ *
+ * @author Stepan Koltsov
+ * @version 1.0, 27/06/2008
+ */
+trait RandomAccessSeqProxy[+A] extends RandomAccessSeq[A] with SeqProxy[A] {
+ override def self: RandomAccessSeq[A]
+
+ override def drop(from: Int): RandomAccessSeq[A] = self.drop(from)
+ override def take(until: Int): RandomAccessSeq[A] = self.take(until)
+ override def slice(from: Int, until: Int) : RandomAccessSeq[A] = self.slice(from, until)
+ override def partition(p: A => Boolean): (RandomAccessSeq[A], RandomAccessSeq[A]) =
+ self.partition(p)
+ // XXX: def patch, reverse, should not return projection
+ override def ++[B >: A](that: Iterable[B]): RandomAccessSeq[B] = self ++ that
+ override def toStream: Stream[A] = self.toStream
+}
+
+// vim: set ts=2 sw=2 et:
diff --git a/src/library/scala/SeqProxy.scala b/src/library/scala/SeqProxy.scala
index 28878f7d18..b9385139fa 100644
--- a/src/library/scala/SeqProxy.scala
+++ b/src/library/scala/SeqProxy.scala
@@ -21,7 +21,7 @@ package scala
*/
trait SeqProxy[+A] extends Seq[A] with IterableProxy[A] {
- def self: Seq[A]
+ override def self: Seq[A]
override def apply(i: Int): A = self(i)
override def length: Int = self.length
diff --git a/src/library/scala/collection/mutable/PriorityQueueProxy.scala b/src/library/scala/collection/mutable/PriorityQueueProxy.scala
index 83b84cef07..ac0742cfc0 100644
--- a/src/library/scala/collection/mutable/PriorityQueueProxy.scala
+++ b/src/library/scala/collection/mutable/PriorityQueueProxy.scala
@@ -20,7 +20,7 @@ package scala.collection.mutable
* @version 1.0, 03/05/2004
*/
abstract class PriorityQueueProxy[A <% Ordered[A]] extends PriorityQueue[A]
- with SeqProxy[A]
+ with RandomAccessSeqProxy[A]
{
def self: PriorityQueue[A]
@@ -90,10 +90,6 @@ abstract class PriorityQueueProxy[A <% Ordered[A]] extends PriorityQueue[A]
*/
override def toQueue: Queue[A] = self.toQueue
- override def take(until : Int) = self take until
- override def drop(from : Int) = self drop from
- override def slice(from : Int, until : Int) = self.slice(from, until)
-
/** This method clones the priority queue.
*
* @return a priority queue with the same elements.