org.objectweb.speedo.genclass.collection
Class CollectionAccessor

java.lang.Object
  extended by org.objectweb.speedo.mim.lib.AbstractStateImpl
      extended by org.objectweb.speedo.genclass.GenClassAccessor
          extended by org.objectweb.speedo.genclass.collection.CollectionAccessor
All Implemented Interfaces:
java.io.Serializable, java.lang.Iterable, java.util.Collection, org.objectweb.jorm.api.PAccessor, org.objectweb.jorm.api.PGenClassAccessor, org.objectweb.jorm.api.PIndexedElemFactory, State, SpeedoGenClassCoherence, StateItf
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, gcpo, logger, supportDelta, tmpelem
 
Fields inherited from class org.objectweb.speedo.mim.lib.AbstractStateImpl
detachedStatus, hasBeenFlush, isToMerge, jdoStatus, speedoPO
 
Constructor Summary
CollectionAccessor(SpeedoGenClassPO thepo)
          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(POManagerItf pm, java.util.Map map, StateItf fieldsClone)
          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(POManagerItf pm)
          Deletes persistent all inner elements of the persistent instance.
 void detachCopy(POManagerItf pm, java.util.Map map, StateItf 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(StateItf sa)
           
 void makePersistent(POManagerItf pm)
          Makes persistent all inner elements of the persistent instance.
 void makePersistentOnAttach(POManagerItf pm, java.util.Map map)
          makes persistent on attach, taking into account the map representing the attch context.
 void refresh(POManagerItf 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(POManagerItf 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.
protected  GenClassElement speedoAddOnAttach(java.lang.Object o, boolean allowDuplicates)
           
 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.AbstractStateImpl
checkVersion, getCacheEntry, getDetachedStatus, getSpeedoPO, getUserKey, getVersion, hasBeenFlush, indexFieldModified, isToMerge, prepareWrite, setCacheEntry, setDetachedStatus, setSpeedoPO, speedoChangeStatus, speedoChangeVersion, speedoGetStatus, speedoSetStatus
 
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 po is active the 'elements' field is used.

Constructor Detail

CollectionAccessor

public CollectionAccessor(SpeedoGenClassPO thepo)
Instanciates and initializes a new collection with an initial size.

Method Detail

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

duplicatAllowed

protected boolean duplicatAllowed()

speedoRemove2

public GenClassElement speedoRemove2(java.lang.Object o)

makePersistent

public void makePersistent(POManagerItf pm)
Description copied from interface: StateItf
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 (PO) linked to this accessor.

Specified by:
makePersistent in interface StateItf
Specified by:
makePersistent in class GenClassAccessor
Parameters:
pm - is the po manager for making persistent inner element.

makePersistentOnAttach

public void makePersistentOnAttach(POManagerItf pm,
                                   java.util.Map map)
Description copied from interface: StateItf
makes persistent on attach, taking into account the map representing the attch context. It enables to avoid cycles.

Specified by:
makePersistentOnAttach in interface StateItf
Specified by:
makePersistentOnAttach in class GenClassAccessor
Parameters:
pm - is the po manager for making persistent inner element.
map - is the context of the attachment process.

deletePersistent

public void deletePersistent(POManagerItf pm)
Description copied from interface: StateItf
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 (po) linked to this accessor.

Specified by:
deletePersistent in interface StateItf
Specified by:
deletePersistent in class GenClassAccessor
Parameters:
pm - is the po manager for making persistent inner element.

setElements

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

loadFieldsFromAccessor

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

detachCopy

public void detachCopy(POManagerItf pm,
                       java.util.Map map,
                       StateItf fieldsClone,
                       java.util.Collection fgHints)
Description copied from interface: StateItf
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 StateItf
Specified by:
detachCopy in class GenClassAccessor
Parameters:
pm - is the po manager used during the detach operation
map - is the map of the detached object. The use of this map permits to support cycle in the object graph.
fieldsClone - is a clone of the current state
fgHints - represents the fetch plan.

attachCopy

public void attachCopy(POManagerItf pm,
                       java.util.Map map,
                       StateItf fieldsClone)
Description copied from interface: StateItf
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 StateItf
Specified by:
attachCopy in class GenClassAccessor
Parameters:
pm - is the po manager used during the attach operation
map - is the map of the atttached object. The use of this map permits to support cycle in the object graph.
fieldsClone - is the detached state used to update the current state

refresh

public void refresh(POManagerItf pm,
                    java.util.Map map,
                    java.util.Collection fgHints)
Description copied from interface: StateItf
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 StateItf
Specified by:
refresh in class GenClassAccessor
Parameters:
pm - is the po manager used during the refresh operation
map - is the map of the refreshed object. The use of this map permits to support cycle in the object graph.
fgHints - represents the fetch plan.

retrieve

public void retrieve(POManagerItf pm,
                     java.util.Map map,
                     java.util.Collection fgHints)
Description copied from interface: StateItf
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 StateItf
Specified by:
retrieve in class GenClassAccessor
Parameters:
pm - is the po manager used during the retrieve operation
map - is the map of the retrieved object. The use of this map permits to support cycle in the object graph.
fgHints - represents the fetch plan.

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
Overrides:
equals in class java.lang.Object

isEmpty

public boolean isEmpty()
Specified by:
isEmpty 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

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
Parameters:
o - is the element to add

speedoAdd

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

speedoAddOnAttach

protected GenClassElement speedoAddOnAttach(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
Parameters:
o - is the element to remove

forceDetachedDirty

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

Specified by:
forceDetachedDirty in interface StateItf

restoreDetachedNone

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

Specified by:
restoreDetachedNone in interface StateItf