wt.fc.collections
Class WTArrayList

java.lang.Object
  extended by java.util.AbstractCollection
      extended by wt.fc.collections.AbstractWTCollection
          extended by wt.fc.collections.AbstractWTList
              extended by wt.fc.collections.WTArrayList
All Implemented Interfaces:
Externalizable, Serializable, Cloneable, Iterable, Collection, List, ReferenceBased, WTCollection, WTList, ResultProcessor

public class WTArrayList
extends wt.fc.collections.AbstractWTList
implements Cloneable, ResultProcessor, Externalizable

An array-based implementation of WTArrayList

WTArrayList implements wt.fc.ResultProcessor to provide better integration with the persistence layer. By implementing ResultProcessor, the default collections can be used in place of a QueryResult when retrieving data. The APIs to accomplish this are:

 PersistenceManager.find(StatementSpec, ResultProcessor)
 PersisenceManagerSvr.query(StatementSpec, ResultProcessor)
 

In addition to a no-arg clone method, WTArrayList provides a "deep" clone in which the references are copied and the Persistables in the set are cloned using PersistenceCloner.

A WTArrayList can be constructed with a key mask. The default key mask is CollectionsHelper.OBJECT_IDENTIFIER.

Supported API: true

Extendable: false

See Also:
Serialized Form

Constructor Summary
WTArrayList()
          

Supported API: true
WTArrayList(Collection c)
          

Supported API: true
WTArrayList(Collection c, int key_mask)
          

Supported API: true
WTArrayList(int initial_capacity)
          

Supported API: true
WTArrayList(int initial_capacity, int key_mask)
          

Supported API: true
 
Method Summary
 void addElement(Object anObj)
          This method is called by the low level persistence layer to add the specified object to the result.
 Object clone()
          

Supported API: true
 WTArrayList clone(boolean deep)
          

Supported API: true
 Iterator persistableIterator()
          Returns an iterator over the objects in this collection, as Persistables.
 Iterator queryKeyIterator()
          Returns an iterator over the QueryKeys in this collection.
 Iterator referenceIterator()
          Returns an Iterator over the objects in this collection, as WTReferences.
 
Methods inherited from class java.util.AbstractCollection
containsAll, isEmpty, removeAll, retainAll, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface wt.fc.collections.WTCollection
add, addAll, connect, connect, connect, connectAll, contains, contains, contains, contains, containsInstance, containsOnly, deflate, inflate, isEnabled, iterator, persistableCollection, remove, remove, remove, remove, removeAll, retainAll, toArray, toArray, toArray, toArray, toArray, toArray, toIdArray
 
Methods inherited from interface java.util.List
add, contains, containsAll, hashCode, isEmpty, iterator, remove, removeAll, retainAll, toArray, toArray
 

Constructor Detail

WTArrayList

public WTArrayList()


Supported API: true


WTArrayList

public WTArrayList(int initial_capacity)


Supported API: true

Parameters:
initial_capacity -

WTArrayList

public WTArrayList(int initial_capacity,
                   int key_mask)


Supported API: true

Parameters:
initial_capacity -
key_mask -

WTArrayList

public WTArrayList(Collection c)


Supported API: true

Parameters:
c -

WTArrayList

public WTArrayList(Collection c,
                   int key_mask)


Supported API: true

Parameters:
c -
key_mask -
Method Detail

clone

public Object clone()


Supported API: true

Overrides:
clone in class Object
Returns:
Object

clone

public WTArrayList clone(boolean deep)


Supported API: true

Parameters:
deep -
Returns:
WTArrayList

persistableIterator

public Iterator persistableIterator()
                             throws WTException
Returns an iterator over the objects in this collection, as Persistables. Inflates all the QueryKeys and references in this collection that don't have Persistables yet. Persistables that are already in the collection are not refreshed.

Supported API: true

Specified by:
persistableIterator in interface WTCollection
Specified by:
persistableIterator in class wt.fc.collections.AbstractWTCollection
Returns:
An iterator of Persistables
Throws:
ConcurrentModificationException - If the collection is modified while the iterator is being processed.
WTException

queryKeyIterator

public Iterator queryKeyIterator()
Returns an iterator over the QueryKeys in this collection. These will typically be ObjectIdentifiers, but may be other QueryKey types depending on how the collection is constructed. Nonpersisted objects will not be included in the id iterator.

Supported API: true

Specified by:
queryKeyIterator in interface WTCollection
Specified by:
queryKeyIterator in class wt.fc.collections.AbstractWTCollection
Returns:
An iterator of QueryKeys
Throws:
ConcurrentModificationException - If the collection is modified while the iterator is being processed.

referenceIterator

public Iterator referenceIterator()
Returns an Iterator over the objects in this collection, as WTReferences. The precise subclass of WTReference is determined by the referenced class, and by this collection's key mask. The references in the iterator may or may not be inflated, depending upon how they were added to the collection and when the collection was last refreshed. Non-persisted objects will still have references in the iterator; they will have null keys.

Supported API: true

Specified by:
referenceIterator in interface WTCollection
Specified by:
referenceIterator in class wt.fc.collections.AbstractWTCollection
Returns:
An iterator of WTReferences
Throws:
ConcurrentModificationException - If the collection is modified while the iterator is being processed.

addElement

public void addElement(Object anObj)
                throws WTException
This method is called by the low level persistence layer to add the specified object to the result. The actual type of the object is based on the type of query. It may be a Persistable or an Object[].

Supported API: true

Specified by:
addElement in interface ResultProcessor
Parameters:
anObj - Result object to add.
Throws:
WTException - - if the object can't be added to the result
WTException