Class WTArrayList

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

public class WTArrayList extends wt.fc.collections.AbstractWTList implements Cloneable, ResultProcessor, Evolvable
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.

Note: this class is Evolvable. You probably don't want to take advantage of this, though, because what you've really got is an association and you should just accept that, model it, and let the system handle data integrity for you. But, if you ignore this advice, be aware that only the references themselves (and not their persistables) will be blobbed (unless the object hasn't been persisted, in which case it'll attempt to blob the entire persistable and fail (unless the persistable itself is Evolvable)) and that nobody's guaranteeing the objects being referred to will still be around when you later de-blob the collection and attempt to inflate the references.

Supported API: true

Extendable: false

See Also:
  • Constructor Details

    • 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 Details

    • 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.