diff options
author | mihaylov <mihaylov@epfl.ch> | 2005-06-07 15:30:42 +0000 |
---|---|---|
committer | mihaylov <mihaylov@epfl.ch> | 2005-06-07 15:30:42 +0000 |
commit | fd154fbd775cd2a2b333686e9cbbbe1643e7b36b (patch) | |
tree | 9367465c3b90af1c28dd60160aec271b3393f7f0 | |
parent | abf0edeaf30a0b27cc1dde0c493b1f082850a3a4 (diff) | |
download | scala-fd154fbd775cd2a2b333686e9cbbbe1643e7b36b.tar.gz scala-fd154fbd775cd2a2b333686e9cbbbe1643e7b36b.tar.bz2 scala-fd154fbd775cd2a2b333686e9cbbbe1643e7b36b.zip |
Improved serialization handling
25 files changed, 32 insertions, 9 deletions
diff --git a/sources/scala/Seq.scala b/sources/scala/Seq.scala index db24f1e789..db05785b50 100644 --- a/sources/scala/Seq.scala +++ b/sources/scala/Seq.scala @@ -37,6 +37,7 @@ object Seq { * @author Matthias Zenger * @version 1.0, 16/07/2003 */ +[serializable] trait Seq[+A] extends AnyRef with PartialFunction[Int, A] with Iterable[A] { /** Returns the length of the sequence. diff --git a/sources/scala/collection/immutable/BitSet.scala b/sources/scala/collection/immutable/BitSet.scala index aa43a54c8f..c66f3cddd9 100644 --- a/sources/scala/collection/immutable/BitSet.scala +++ b/sources/scala/collection/immutable/BitSet.scala @@ -21,6 +21,7 @@ package scala.collection.immutable; * @author Burak Emir * @version 1.0 */ +[serializable] class BitSet(n:Int, ba: Array[Int], copy: Boolean) extends collection.BitSet with Ordered[BitSet] { /** lexicographic ordering */ diff --git a/sources/scala/collection/immutable/ListMap.scala b/sources/scala/collection/immutable/ListMap.scala index b21e5320db..8192eda7fd 100644 --- a/sources/scala/collection/immutable/ListMap.scala +++ b/sources/scala/collection/immutable/ListMap.scala @@ -22,6 +22,7 @@ object ListMap { * @author Matthias Zenger * @version 1.0, 09/07/2003 */ +[serializable] class ListMap[A, B] extends AnyRef with Map[A, B] { /** This method returns a new ListMap instance mapping keys of the diff --git a/sources/scala/collection/immutable/ListSet.scala b/sources/scala/collection/immutable/ListSet.scala index 12f7c4bf78..0fa95a06ce 100644 --- a/sources/scala/collection/immutable/ListSet.scala +++ b/sources/scala/collection/immutable/ListSet.scala @@ -25,6 +25,7 @@ object ListSet { * @author Matthias Zenger * @version 1.0, 09/07/2003 */ +[serializable] class ListSet[A] extends AnyRef with Set[A] { /** Returns the number of elements in this set. diff --git a/sources/scala/collection/immutable/Queue.scala b/sources/scala/collection/immutable/Queue.scala index 5a42323642..ca6ca63171 100644 --- a/sources/scala/collection/immutable/Queue.scala +++ b/sources/scala/collection/immutable/Queue.scala @@ -20,6 +20,7 @@ object Queue { * @author Erik Stenman * @version 1.0, 08/07/2003 */ +[serializable] class Queue[+A](elem: A*) extends Seq[A] { protected val in: List[A] = Nil; protected val out: List[A] = itToList(elem.elements); diff --git a/sources/scala/collection/immutable/Stack.scala b/sources/scala/collection/immutable/Stack.scala index 5869280353..46b15794a3 100644 --- a/sources/scala/collection/immutable/Stack.scala +++ b/sources/scala/collection/immutable/Stack.scala @@ -22,6 +22,7 @@ object Stack { * @author Matthias Zenger * @version 1.0, 10/07/2003 */ +[serializable] class Stack[+A] extends Seq[A] { /** Checks if this stack is empty. @@ -122,7 +123,7 @@ class Stack[+A] extends Seq[A] { override def stringPrefix: String = "Stack"; // Here comes true magic: covariant lists with implicit tail references - + [serializable] protected class Node[+B >: A](elem: B) extends Stack[B] { override def isEmpty: Boolean = false; override def length: Int = Stack.this.length + 1; diff --git a/sources/scala/collection/immutable/Tree.scala b/sources/scala/collection/immutable/Tree.scala index c6f48bae1e..8e304ffbd8 100644 --- a/sources/scala/collection/immutable/Tree.scala +++ b/sources/scala/collection/immutable/Tree.scala @@ -61,7 +61,8 @@ import java.lang.Math; * @author Michel Schinz * @version 1.1, 2005-01-20 */ -abstract class Tree[A <% Ordered[A], B]() extends AnyRef { +//[serializable] +abstract class Tree[A <% Ordered[A], B]() extends AnyRef with java.io.Serializable { /* Data structure: ** - size:Int - the number of elements in the tree. ** - tree:T, which is composed of nodes of the form: @@ -223,8 +224,8 @@ private case class INode[A <% Ordered[A],B](t1: GBTree[A,B], /** * GBTree is an internal class used by Tree. */ - -protected abstract class GBTree[A <% Ordered[A],B] extends AnyRef { +//[serializable] +protected abstract class GBTree[A <% Ordered[A],B] extends AnyRef with java.io.Serializable { type aNode = GBTree[A,B]; type anInsertTree = InsertTree[A,B]; diff --git a/sources/scala/collection/immutable/TreeMap.scala b/sources/scala/collection/immutable/TreeMap.scala index a2d4893564..b686d0afd2 100644 --- a/sources/scala/collection/immutable/TreeMap.scala +++ b/sources/scala/collection/immutable/TreeMap.scala @@ -19,7 +19,8 @@ object TreeMap { * @author Matthias Zenger * @version 1.1, 03/05/2004 */ -class TreeMap[A <% Ordered[A], B] extends Tree[A, Pair[A, B]] with Map[A, B] { +//[serializable] +class TreeMap[A <% Ordered[A], B] extends Tree[A, Pair[A, B]] with Map[A, B] with java.io.Serializable { override protected type This = TreeMap[A, B]; override protected def getThis: This = this; diff --git a/sources/scala/collection/immutable/TreeSet.scala b/sources/scala/collection/immutable/TreeSet.scala index 20847a17a0..1945386946 100644 --- a/sources/scala/collection/immutable/TreeSet.scala +++ b/sources/scala/collection/immutable/TreeSet.scala @@ -16,7 +16,8 @@ package scala.collection.immutable; * @author Burak Emir * @version 1.1, 03/05/2004 */ -class TreeSet[A <% Ordered[A]]() extends Tree[A, A] with Set[A] { +//[serializable] +class TreeSet[A <% Ordered[A]]() extends Tree[A, A] with Set[A] with java.io.Serializable { override protected type This = TreeSet[A]; override protected def getThis: This = this; diff --git a/sources/scala/collection/mutable/ArrayBuffer.scala b/sources/scala/collection/mutable/ArrayBuffer.scala index d7f5f5c0a8..e89e1a9c81 100644 --- a/sources/scala/collection/mutable/ArrayBuffer.scala +++ b/sources/scala/collection/mutable/ArrayBuffer.scala @@ -16,6 +16,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 15/03/2004 */ +[serializable] class ArrayBuffer[A] extends Buffer[A] with ResizableArray[A] { def apply(n: Int): A = { diff --git a/sources/scala/collection/mutable/BitSet.scala b/sources/scala/collection/mutable/BitSet.scala index 30da819e67..b16114a795 100644 --- a/sources/scala/collection/mutable/BitSet.scala +++ b/sources/scala/collection/mutable/BitSet.scala @@ -14,11 +14,13 @@ package scala.collection.mutable ; * @author Burak Emir * @param initSize: initial size in nbits */ +[serializable] class BitSet(initSize: Int) extends scala.collection.BitSet { /** default constructor, initial size of 512 bits */ def this() = this( 512 ); // ResizableArray.initialSize << 5 + [serializable] class ByteArray extends AnyRef with ResizableArray[Int] { final def ensureBits(nbits: Int): Unit = { diff --git a/sources/scala/collection/mutable/DoubleLinkedList.scala b/sources/scala/collection/mutable/DoubleLinkedList.scala index 36fa504afe..977f42b23a 100644 --- a/sources/scala/collection/mutable/DoubleLinkedList.scala +++ b/sources/scala/collection/mutable/DoubleLinkedList.scala @@ -17,6 +17,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ +[serializable] abstract class DoubleLinkedList[A, This <: DoubleLinkedList[A, This]]: This extends SingleLinkedList[A, This] { diff --git a/sources/scala/collection/mutable/HashMap.scala b/sources/scala/collection/mutable/HashMap.scala index 3f5fcdee90..6388b78f25 100644 --- a/sources/scala/collection/mutable/HashMap.scala +++ b/sources/scala/collection/mutable/HashMap.scala @@ -14,6 +14,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ +[serializable] class HashMap[A, B] extends scala.collection.mutable.Map[A, B] with HashTable[A] with DefaultMapModel[A, B] { diff --git a/sources/scala/collection/mutable/HashSet.scala b/sources/scala/collection/mutable/HashSet.scala index 0cbfa1b53a..7f71b037b4 100644 --- a/sources/scala/collection/mutable/HashSet.scala +++ b/sources/scala/collection/mutable/HashSet.scala @@ -15,6 +15,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ +[serializable] class HashSet[A] extends scala.collection.mutable.Set[A] with HashTable[A] { def contains(elem: A): Boolean = findEntry(elem) match { diff --git a/sources/scala/collection/mutable/HashTable.scala b/sources/scala/collection/mutable/HashTable.scala index 37d51204f6..adcbc5aec5 100644 --- a/sources/scala/collection/mutable/HashTable.scala +++ b/sources/scala/collection/mutable/HashTable.scala @@ -28,7 +28,6 @@ import Predef._; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -[serializable] abstract class HashTable[A] extends AnyRef { /** The load factor for the hash table. diff --git a/sources/scala/collection/mutable/History.scala b/sources/scala/collection/mutable/History.scala index f00c8a26f4..43be629602 100644 --- a/sources/scala/collection/mutable/History.scala +++ b/sources/scala/collection/mutable/History.scala @@ -18,6 +18,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ +[serializable] class History[A, B] extends AnyRef with Subscriber[A, B] with Iterable[Pair[B, A]] { protected val log: Queue[Pair[B, A]] = new Queue[Pair[B, A]]; diff --git a/sources/scala/collection/mutable/ImmutableMapAdaptor.scala b/sources/scala/collection/mutable/ImmutableMapAdaptor.scala index be275b3c04..5167636b40 100644 --- a/sources/scala/collection/mutable/ImmutableMapAdaptor.scala +++ b/sources/scala/collection/mutable/ImmutableMapAdaptor.scala @@ -19,6 +19,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 21/07/2003 */ +[serializable] class ImmutableMapAdaptor[A, B](m: scala.collection.immutable.Map[A, B]) extends Map[A, B] { protected var imap = m; diff --git a/sources/scala/collection/mutable/ImmutableSetAdaptor.scala b/sources/scala/collection/mutable/ImmutableSetAdaptor.scala index 9f8bf98e5e..623074b3d9 100644 --- a/sources/scala/collection/mutable/ImmutableSetAdaptor.scala +++ b/sources/scala/collection/mutable/ImmutableSetAdaptor.scala @@ -19,6 +19,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 21/07/2003 */ +[serializable] class ImmutableSetAdaptor[A](s: scala.collection.immutable.Set[A]) extends Set[A] { protected var set = s; diff --git a/sources/scala/collection/mutable/LinkedList.scala b/sources/scala/collection/mutable/LinkedList.scala index c04f612a9e..a8970da2ae 100644 --- a/sources/scala/collection/mutable/LinkedList.scala +++ b/sources/scala/collection/mutable/LinkedList.scala @@ -15,7 +15,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ - +[serializable] class LinkedList[A](head: A, tail: LinkedList[A]) extends SingleLinkedList[A, LinkedList[A]] { diff --git a/sources/scala/collection/mutable/PriorityQueue.scala b/sources/scala/collection/mutable/PriorityQueue.scala index acd81771bf..e9e44dbbd7 100644 --- a/sources/scala/collection/mutable/PriorityQueue.scala +++ b/sources/scala/collection/mutable/PriorityQueue.scala @@ -17,7 +17,8 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 03/05/2004 */ -class PriorityQueue[A <% Ordered[A]] extends ResizableArray[A] with Cloneable { +//[serializable] +class PriorityQueue[A <% Ordered[A]] extends ResizableArray[A] with Cloneable with java.io.Serializable { size = size + 1; // we do not use array(0) protected def fixUp(as: Array[A], m: Int): Unit = { diff --git a/sources/scala/collection/mutable/Queue.scala b/sources/scala/collection/mutable/Queue.scala index 308bed6bad..c3e0020576 100644 --- a/sources/scala/collection/mutable/Queue.scala +++ b/sources/scala/collection/mutable/Queue.scala @@ -16,6 +16,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.1, 03/05/2004 */ +[serializable] class Queue[A] extends MutableList[A] with Cloneable { /** Checks if the queue is empty. diff --git a/sources/scala/collection/mutable/RevertableHistory.scala b/sources/scala/collection/mutable/RevertableHistory.scala index 3bfc7cd2ed..c9bb1ef6d1 100644 --- a/sources/scala/collection/mutable/RevertableHistory.scala +++ b/sources/scala/collection/mutable/RevertableHistory.scala @@ -18,6 +18,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ +[serializable] class RevertableHistory[A <: Undoable, B] extends History[A, B] with Undoable { /** Rollback the full history. diff --git a/sources/scala/collection/mutable/SingleLinkedList.scala b/sources/scala/collection/mutable/SingleLinkedList.scala index ba1b141524..b60d32ba1b 100644 --- a/sources/scala/collection/mutable/SingleLinkedList.scala +++ b/sources/scala/collection/mutable/SingleLinkedList.scala @@ -18,6 +18,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ +[serializable] abstract class SingleLinkedList[A, This <: SingleLinkedList[A, This]]: This extends AnyRef with Seq[A] { var elem: A = _; diff --git a/sources/scala/collection/mutable/Stack.scala b/sources/scala/collection/mutable/Stack.scala index 756b1637e3..135d21a70c 100644 --- a/sources/scala/collection/mutable/Stack.scala +++ b/sources/scala/collection/mutable/Stack.scala @@ -16,6 +16,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.1, 03/05/2004 */ +[serializable] class Stack[A] extends MutableList[A] with Cloneable { /** Checks if the stack is empty. diff --git a/sources/scala/xml/Atom.scala b/sources/scala/xml/Atom.scala index 1b44c6b104..37548a9ef3 100644 --- a/sources/scala/xml/Atom.scala +++ b/sources/scala/xml/Atom.scala @@ -14,6 +14,7 @@ package scala.xml; * @author Burak Emir * @param text the text contained in this node, may not be null. */ +[serializable] class Atom[+A]( val data: A ) extends SpecialNode { final override def typeTag$:Int = -1; |