diff options
author | Sean McDirmid <sean.mcdirmid@gmail.com> | 2008-03-20 11:31:25 +0000 |
---|---|---|
committer | Sean McDirmid <sean.mcdirmid@gmail.com> | 2008-03-20 11:31:25 +0000 |
commit | 4f8a818c72feae88d44f92396b86a276de390fea (patch) | |
tree | d1549a3b031d138f6bec2551300013547e3d7c86 | |
parent | c58bc06b10424753d36b1da9de37c898d2501572 (diff) | |
download | scala-4f8a818c72feae88d44f92396b86a276de390fea.tar.gz scala-4f8a818c72feae88d44f92396b86a276de390fea.tar.bz2 scala-4f8a818c72feae88d44f92396b86a276de390fea.zip |
Adding apply methods to Map/Set/etc...
-rw-r--r-- | src/library/scala/collection/jcl/Buffer.scala | 4 | ||||
-rw-r--r-- | src/library/scala/collection/jcl/Conversions.scala | 17 | ||||
-rw-r--r-- | src/library/scala/collection/jcl/IterableWrapper.scala | 9 | ||||
-rw-r--r-- | src/library/scala/collection/jcl/Map.scala | 3 | ||||
-rw-r--r-- | src/library/scala/collection/jcl/Set.scala | 3 | ||||
-rw-r--r-- | src/library/scala/collection/jcl/SortedMap.scala | 3 | ||||
-rw-r--r-- | src/library/scala/collection/jcl/SortedSet.scala | 4 |
7 files changed, 34 insertions, 9 deletions
diff --git a/src/library/scala/collection/jcl/Buffer.scala b/src/library/scala/collection/jcl/Buffer.scala index a0a3348d0a..dfc36765d3 100644 --- a/src/library/scala/collection/jcl/Buffer.scala +++ b/src/library/scala/collection/jcl/Buffer.scala @@ -209,6 +209,10 @@ trait Buffer[A] extends RandomAccessSeq.Mutable[A] with Ranged[Int,A] with Mutab */ } object Buffer { + def apply[T](list : java.util.List[T]) = new BufferWrapper[T] { + val underlying = list + } + trait Projection0[A] extends MutableSeq.Projection[A] with RandomAccessSeq.Projection[A] { override def projection : Projection0[A] = this override def elements : SeqIterator[Int,A] = new DefaultSeqIterator diff --git a/src/library/scala/collection/jcl/Conversions.scala b/src/library/scala/collection/jcl/Conversions.scala new file mode 100644 index 0000000000..edb96322b6 --- /dev/null +++ b/src/library/scala/collection/jcl/Conversions.scala @@ -0,0 +1,17 @@ +package scala.collection.jcl + +object Conversions { + implicit def convertSet[T](set : java.util.Set[T]) = Set(set) + implicit def convertList[T](set : java.util.List[T]) = Buffer(set) + implicit def convertSortedSet[T](set : java.util.SortedSet[T]) = SortedSet(set) + implicit def convertMap[T,E](set : java.util.Map[T,E]) = Map(set) + implicit def convertSortedMap[T,E](set : java.util.SortedMap[T,E]) = SortedMap(set) + + implicit def unconvertSet[T](set : SetWrapper[T]) = set.underlying + implicit def unconvertCollection[T](set : CollectionWrapper[T]) = set.underlying + implicit def unconvertList[T](set : BufferWrapper[T]) = set.underlying + implicit def unconvertSortedSet[T](set : SortedSetWrapper[T]) = set.underlying + implicit def unconvertMap[T,E](set : MapWrapper[T,E]) = set.underlying + implicit def unconvertSortedMap[T,E](set : SortedMapWrapper[T,E]) = set.underlying + +}
\ No newline at end of file diff --git a/src/library/scala/collection/jcl/IterableWrapper.scala b/src/library/scala/collection/jcl/IterableWrapper.scala index ade058eb3b..caa31d10cf 100644 --- a/src/library/scala/collection/jcl/IterableWrapper.scala +++ b/src/library/scala/collection/jcl/IterableWrapper.scala @@ -29,13 +29,4 @@ trait IterableWrapper[A] extends MutableIterable[A] { override def isEmpty = underlying.isEmpty; override def clear = underlying.clear; override def elements : MutableIterator[A] = new MutableIterator.Wrapper[A](underlying.iterator); -/* moved to MutableIterator - class IteratorWrapper(underlying : java.util.Iterator) extends MutableIterator[A] { - // val underlying = IterableWrapper.this.underlying.iterator; - def hasNext = underlying.hasNext; - def next = underlying.next.asInstanceOf[A]; - def remove = underlying.remove; - } -*/ - } diff --git a/src/library/scala/collection/jcl/Map.scala b/src/library/scala/collection/jcl/Map.scala index 8e921dcfc2..4dc0625b71 100644 --- a/src/library/scala/collection/jcl/Map.scala +++ b/src/library/scala/collection/jcl/Map.scala @@ -123,4 +123,7 @@ object Map { override def projection = this override def map[B](f : ((K,E)) => B) : MutableIterable.Projection[B] = super[MutableIterableProjection].map(f); } + def apply[T,E](map0 : java.util.Map[T,E]) = new MapWrapper[T,E] { + val underlying = map0 + } } diff --git a/src/library/scala/collection/jcl/Set.scala b/src/library/scala/collection/jcl/Set.scala index 85c5b11148..7ef9360c2a 100644 --- a/src/library/scala/collection/jcl/Set.scala +++ b/src/library/scala/collection/jcl/Set.scala @@ -66,4 +66,7 @@ object Set { override def filter(p : A => Boolean) : Projection[A] = new Filter(p); override def projection = this } + def apply[T](set : java.util.Set[T]) = new SetWrapper[T] { + val underlying = set + } } diff --git a/src/library/scala/collection/jcl/SortedMap.scala b/src/library/scala/collection/jcl/SortedMap.scala index 223494a7a5..be5591e7b8 100644 --- a/src/library/scala/collection/jcl/SortedMap.scala +++ b/src/library/scala/collection/jcl/SortedMap.scala @@ -14,6 +14,9 @@ object SortedMap { trait Projection[K,E] extends Map.Projection[K,E] with SortedMap[K,E] { override def projection = this } + def apply[T,E](map0 : java.util.SortedMap[T,E]) = new SortedMapWrapper[T,E] { + val underlying = map0 + } } /** A map whose keys are sorted. * diff --git a/src/library/scala/collection/jcl/SortedSet.scala b/src/library/scala/collection/jcl/SortedSet.scala index 0e59eb5c43..5050a1c36a 100644 --- a/src/library/scala/collection/jcl/SortedSet.scala +++ b/src/library/scala/collection/jcl/SortedSet.scala @@ -16,6 +16,10 @@ object SortedSet { override def projection = this override def filter(p : A => Boolean) : Projection[A] = new Filter(p); } + def apply[T](set : java.util.SortedSet[T]) = new SortedSetWrapper[T] { + val underlying = set + } + } /** Analogous to a Java sorted set. |