org.objectweb.speedo.genclass.collection
Class CollectionAccessor

java.lang.Object
  extended byorg.objectweb.speedo.mim.lib.BasicSpeedoAccessor
      extended byorg.objectweb.speedo.genclass.GenClassAccessor
          extended byorg.objectweb.speedo.genclass.collection.CollectionAccessor
All Implemented Interfaces:
java.util.Collection, org.objectweb.jorm.api.PAccessor, org.objectweb.jorm.api.PGenClassAccessor, org.objectweb.jorm.api.PIndexedElemFactory, java.io.Serializable, SpeedoAccessor, SpeedoGenClassCoherence, org.objectweb.perseus.persistence.api.State
Direct Known Subclasses:
ListAccessor, SetAccessor

public class CollectionAccessor
extends GenClassAccessor
implements java.util.Collection

Author:
S.Chassande-Barrioz
See Also:
Serialized Form

Field Summary
protected  java.util.Collection collection
          is the internal collection used when the gen class is not active.
 
Fields inherited from class org.objectweb.speedo.genclass.GenClassAccessor
deltaForMerge, elements, jdoProxy, logger, supportDelta, tmpelem
 
Fields inherited from class org.objectweb.speedo.mim.lib.BasicSpeedoAccessor
detachedStatus, hasBeenFlush, isToMerge, jdoStatus, proxy
 
Constructor Summary
CollectionAccessor(SpeedoGenClassProxy _jdoProxy)
          Instanciates and initializes a new collection with an initial size.
 
Method Summary
 boolean add(java.lang.Object o)
           
 boolean addAll(java.util.Collection c)
           
 void attachCopy(ProxyManager pm, java.util.Map map, SpeedoAccessor fieldsClone, boolean makeTransactional)
          This method is used during the attach operation.
 void clear()
           
 boolean contains(java.lang.Object o)
           
 boolean containsAll(java.util.Collection c)
           
 org.objectweb.jorm.api.PIndexedElem createPIndexedElem(GenClassAccessor gca)
           
 void deletePersistent(ProxyManager pm)
          Deletes persistent all inner elements of the persistent instance.
 void detachCopy(ProxyManager pm, java.util.Map map, SpeedoAccessor fieldsClone, java.util.Collection fgHints)
          This method is used during the detach operation.
protected  boolean duplicatAllowed()
           
 boolean equals(java.lang.Object o)
           
 void forceDetachedDirty()
          Force the detached status to DETACHED_DIRTY and all the xxxLoaded to true
 boolean isEmpty()
           
 java.util.Iterator iterator()
           
 void loadFieldsFromAccessor(SpeedoAccessor sa)
           
 void makePersistent(ProxyManager pm)
          Makes persistent all inner elements of the persistent instance.
 void refresh(ProxyManager pm, java.util.Map map, java.util.Collection fgHints)
          This method is used during the refresh operation.
 boolean remove(java.lang.Object o)
           
 boolean removeAll(java.util.Collection c)
           
 void restoreDetachedNone()
          Restore the detached status to DETACHED_NONE and all the xxxLoaded to false
 boolean retainAll(java.util.Collection c)
           
 void retrieve(ProxyManager pm, java.util.Map map, java.util.Collection fgHints)
          This method is used during the retrieve operation.
 void setElements(java.lang.Object o)
           
 int size()
           
protected  GenClassElement speedoAdd(java.lang.Object o, boolean allowDuplicates)
           
 boolean speedoAdd(java.lang.Object o, java.lang.Object hints)
          Askes the adding of an element into a generic class.
 boolean speedoRemove(java.lang.Object o, java.lang.Object hints)
          Askes the removing of an element from a generic class.
 GenClassElement speedoRemove2(java.lang.Object o)
           
 java.lang.Object[] toArray()
           
 java.lang.Object[] toArray(java.lang.Object[] a)
           
 java.lang.String toString()
           
 
Methods inherited from class org.objectweb.speedo.genclass.GenClassAccessor
createPIndexedElem, getLogger, getMemoryInstance, loadFields, makeToMerge, merge, paAdd, paDeltaSupported, paGetNbElem, paIterator, paSetNbElem, setFlushed, unSwizzle, workingSetClosed
 
Methods inherited from class org.objectweb.speedo.mim.lib.BasicSpeedoAccessor
changeVersion, checkVersion, getCacheEntry, getDetachedStatus, getSpeedoProxy, getUserKey, getVersion, hasBeenFlush, indexFieldModified, isToMerge, jdoChangeStatus, jdoGetStatus, jdoSetStatus, prepareWrite, setDetachedStatus, setSpeedoProxy
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Collection
hashCode
 

Field Detail

collection

protected java.util.Collection collection
is the internal collection used when the gen class is not active. When the proxy is active the 'elements' field is used.

Constructor Detail

CollectionAccessor

public CollectionAccessor(SpeedoGenClassProxy _jdoProxy)
Instanciates and initializes a new collection with an initial size.

Method Detail

toString

public java.lang.String toString()

duplicatAllowed

protected boolean duplicatAllowed()

speedoRemove2

public GenClassElement speedoRemove2(java.lang.Object o)

makePersistent

public void makePersistent(ProxyManager pm)
Description copied from interface: SpeedoAccessor
Makes persistent all inner elements of the persistent instance. For a class, it means making persistent all objects referenced by a persistent field. For a genclass it means making persistent element of the genclass. This method is called when a makePersistent is called on the persistent class (Proxy) linked to this accessor.

Specified by:
makePersistent in interface SpeedoAccessor
Specified by:
makePersistent in class GenClassAccessor

deletePersistent

public void deletePersistent(ProxyManager pm)
Description copied from interface: SpeedoAccessor
Deletes persistent all inner elements of the persistent instance. For a class, it means deleting persistent all objects referenced by a persistent field. For a genclass it means deleting persistent element of the genclass. This method is called when a deletePersistent is called on the persistent class (Proxy) linked to this accessor.

Specified by:
deletePersistent in interface SpeedoAccessor
Specified by:
deletePersistent in class GenClassAccessor

setElements

public void setElements(java.lang.Object o)
Specified by:
setElements in class GenClassAccessor

loadFieldsFromAccessor

public void loadFieldsFromAccessor(SpeedoAccessor sa)
Specified by:
loadFieldsFromAccessor in class GenClassAccessor

detachCopy

public void detachCopy(ProxyManager pm,
                       java.util.Map map,
                       SpeedoAccessor fieldsClone,
                       java.util.Collection fgHints)
Description copied from interface: SpeedoAccessor
This method is used during the detach operation. A call to this method copy the field of the state into the the cloned state. When a field references a persistent object, according to the fetch plan, the referenced can be detached too.

Specified by:
detachCopy in interface SpeedoAccessor
Specified by:
detachCopy in class GenClassAccessor

attachCopy

public void attachCopy(ProxyManager pm,
                       java.util.Map map,
                       SpeedoAccessor fieldsClone,
                       boolean makeTransactional)
Description copied from interface: SpeedoAccessor
This method is used during the attach operation. A call to this method copy the field of the cloned state into the the current state. When a field references a persistent object, according to the fetch plan, the referenced can be attached too.

Specified by:
attachCopy in interface SpeedoAccessor
Specified by:
attachCopy in class GenClassAccessor

refresh

public void refresh(ProxyManager pm,
                    java.util.Map map,
                    java.util.Collection fgHints)
Description copied from interface: SpeedoAccessor
This method is used during the refresh operation. A call to this method refreshes the fields of the current state. When a field references a persistent object, according to the fetch plan, the referenced can be refreshed too.

Specified by:
refresh in interface SpeedoAccessor
Specified by:
refresh in class GenClassAccessor

retrieve

public void retrieve(ProxyManager pm,
                     java.util.Map map,
                     java.util.Collection fgHints)
Description copied from interface: SpeedoAccessor
This method is used during the retrieve operation. A call to this method retrieves the fields of the current state. When a field references a persistent object, according to the fetch plan, the referenced can be retrieved too.

Specified by:
retrieve in interface SpeedoAccessor
Specified by:
retrieve in class GenClassAccessor

add

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

addAll

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

clear

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

contains

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

containsAll

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

equals

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

isEmpty

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

iterator

public java.util.Iterator iterator()
Specified by:
iterator 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

size

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

toArray

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

toArray

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

createPIndexedElem

public org.objectweb.jorm.api.PIndexedElem createPIndexedElem(GenClassAccessor gca)
Specified by:
createPIndexedElem in class GenClassAccessor

speedoAdd

public boolean speedoAdd(java.lang.Object o,
                         java.lang.Object hints)
Description copied from interface: SpeedoGenClassCoherence
Askes the adding of an element into a generic class. The consistency of relations must not be managed: this is done by the caller of this method.

Specified by:
speedoAdd in interface SpeedoGenClassCoherence
Specified by:
speedoAdd in class GenClassAccessor

speedoAdd

protected GenClassElement speedoAdd(java.lang.Object o,
                                    boolean allowDuplicates)

speedoRemove

public boolean speedoRemove(java.lang.Object o,
                            java.lang.Object hints)
Description copied from interface: SpeedoGenClassCoherence
Askes the removing of an element from a generic class. The consistency of relations must not be managed: this is done by the caller of this method.

Specified by:
speedoRemove in interface SpeedoGenClassCoherence
Specified by:
speedoRemove in class GenClassAccessor

forceDetachedDirty

public void forceDetachedDirty()
Description copied from interface: SpeedoAccessor
Force the detached status to DETACHED_DIRTY and all the xxxLoaded to true

Specified by:
forceDetachedDirty in interface SpeedoAccessor

restoreDetachedNone

public void restoreDetachedNone()
Description copied from interface: SpeedoAccessor
Restore the detached status to DETACHED_NONE and all the xxxLoaded to false

Specified by:
restoreDetachedNone in interface SpeedoAccessor