com.myJava.util.collections
Class SerializedCollection

java.lang.Object
  extended by com.myJava.util.collections.SerializedCollection
All Implemented Interfaces:
java.lang.Iterable, java.util.Collection
Direct Known Subclasses:
ZipEntrySerializedCollection

public abstract class SerializedCollection
extends java.lang.Object
implements java.util.Collection

Partial Collection implementation which allows to store large collections.
The object contained in this collection are serialized and written into a buffer file (which is automatically destroyed when the VM stops).
All add elements must implement the Serialized interface.
Note that the add and addAll methods always return true and don't check wether the added element is already contained in the collection.

This class relies on ObjectOut/Inputstreams, but only uses primitive types serializations features to avoid using instance pooling implemented by these classes when "read/writeObject" is called (which results in a growing HashTable)

Author:
Olivier PETRUCCI

Areca Build ID : 7299034069467778562

Field Summary
protected  java.io.File bufferFile
           
 
Constructor Summary
SerializedCollection()
           
 
Method Summary
 boolean add(java.lang.Object o)
           
 boolean addAll(java.util.Collection c)
           
 void clear()
           
 boolean contains(java.lang.Object o)
           
 boolean containsAll(java.util.Collection c)
           
 boolean isEmpty()
           
 java.util.Iterator iterator()
           
 void lock()
           
protected abstract  java.lang.Object readObject(java.io.ObjectInputStream in)
           
protected  void registerIterator(com.myJava.util.collections.SerializedCollection.SerializedIterator iter)
           
 boolean remove(java.lang.Object o)
           
 boolean removeAll(java.util.Collection c)
           
 boolean retainAll(java.util.Collection c)
           
 int size()
           
 java.lang.Object[] toArray()
           
 java.lang.Object[] toArray(java.lang.Object[] a)
           
protected  void unregisterIterator(com.myJava.util.collections.SerializedCollection.SerializedIterator iter)
           
protected abstract  void writeObject(java.io.ObjectOutputStream out, java.lang.Object o)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Collection
equals, hashCode
 

Field Detail

bufferFile

protected java.io.File bufferFile
Constructor Detail

SerializedCollection

public SerializedCollection()
                     throws java.io.IOException
Throws:
java.io.IOException
Method Detail

size

public int size()
Specified by:
size in interface java.util.Collection

lock

public void lock()
          throws java.io.IOException
Throws:
java.io.IOException

writeObject

protected abstract void writeObject(java.io.ObjectOutputStream out,
                                    java.lang.Object o)
                             throws java.io.IOException
Throws:
java.io.IOException

readObject

protected abstract java.lang.Object readObject(java.io.ObjectInputStream in)
                                        throws java.io.IOException,
                                               java.lang.ClassNotFoundException
Throws:
java.io.IOException
java.lang.ClassNotFoundException

clear

public void clear()
Specified by:
clear in interface java.util.Collection

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.Collection

add

public boolean add(java.lang.Object o)
Specified by:
add in interface java.util.Collection

registerIterator

protected void registerIterator(com.myJava.util.collections.SerializedCollection.SerializedIterator iter)

unregisterIterator

protected void unregisterIterator(com.myJava.util.collections.SerializedCollection.SerializedIterator iter)

addAll

public boolean addAll(java.util.Collection c)
Specified by:
addAll in interface java.util.Collection

iterator

public java.util.Iterator iterator()
Specified by:
iterator in interface java.lang.Iterable
Specified by:
iterator in interface java.util.Collection

containsAll

public boolean containsAll(java.util.Collection c)
Specified by:
containsAll in interface java.util.Collection

contains

public boolean contains(java.lang.Object o)
Specified by:
contains in interface java.util.Collection

remove

public boolean remove(java.lang.Object o)
Specified by:
remove in interface java.util.Collection

removeAll

public boolean removeAll(java.util.Collection c)
Specified by:
removeAll in interface java.util.Collection

retainAll

public boolean retainAll(java.util.Collection c)
Specified by:
retainAll in interface java.util.Collection

toArray

public java.lang.Object[] toArray(java.lang.Object[] a)
Specified by:
toArray in interface java.util.Collection

toArray

public java.lang.Object[] toArray()
Specified by:
toArray in interface java.util.Collection