org.objectweb.speedo.genclass.map
Class MapAccessor

java.lang.Object
  extended by org.objectweb.speedo.mim.lib.AbstractStateImpl
      extended by org.objectweb.speedo.genclass.GenClassAccessor
          extended by org.objectweb.speedo.genclass.map.MapAccessor
All Implemented Interfaces:
java.io.Serializable, java.util.Map, org.objectweb.jorm.api.PAccessor, org.objectweb.jorm.api.PGenClassAccessor, org.objectweb.jorm.api.PIndexedElemFactory, State, SpeedoGenClassCoherence, StateItf

public class MapAccessor
extends GenClassAccessor
implements java.util.Map

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>
 
Field Summary
protected  java.util.Map map
          A map containing the indexed elements of the genclass.
 
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
MapAccessor(SpeedoGenClassPO apo)
          Instanciates and initializes a new map with an initial size.
 
Method Summary
 void attachCopy(POManagerItf pm, java.util.Map attachCtx, StateItf fieldsClone)
          This method is used during the attach operation.
 void clear()
           
 boolean containsKey(java.lang.Object key)
           
 boolean containsValue(java.lang.Object value)
           
 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 detachCtx, StateItf fieldsClone, java.util.Collection fgHints)
          This method is used during the detach operation.
 java.util.Set entrySet()
           
 void forceDetachedDirty()
          Force the detached status to DETACHED_DIRTY and all the xxxLoaded to true
 java.lang.Object get(java.lang.Object key)
           
 boolean isEmpty()
           
 java.util.Set keySet()
           
 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 paAdd(org.objectweb.jorm.api.PIndexedElem elem, java.lang.Object conn)
           
 int paGetNbElem()
           
 java.util.Iterator paIterator()
           
 void paSetNbElem(int nbelem)
           
 java.lang.Object put(java.lang.Object key, java.lang.Object value)
           
 java.lang.Object put(java.lang.Object key, java.lang.Object value, boolean withCoherence)
           
 void putAll(java.util.Map t)
           
 void refresh(POManagerItf pm, java.util.Map refreshCtx, java.util.Collection fgHints)
          This method is used during the refresh operation.
 java.lang.Object remove(java.lang.Object key)
           
 java.lang.Object remove(java.lang.Object key, boolean withCoherence)
           
 void restoreDetachedNone()
          Restore the detached status to DETACHED_NONE and all the xxxLoaded to false
 void retrieve(POManagerItf pm, java.util.Map retrieveCtx, java.util.Collection fgHints)
          This method is used during the retrieve operation.
 void setElements(java.lang.Object o)
           
 int size()
           
 boolean speedoAdd(java.lang.Object elemToAdd, java.lang.Object hints)
          Askes the adding of an element into a generic class.
 boolean speedoRemove(java.lang.Object elemToRemove, java.lang.Object hints)
          Askes the removing of an element from a generic class.
 java.util.Collection values()
           
 
Methods inherited from class org.objectweb.speedo.genclass.GenClassAccessor
createPIndexedElem, getLogger, getMemoryInstance, loadFields, makeToMerge, merge, paDeltaSupported, 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, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Field Detail

map

protected java.util.Map map
A map containing the indexed elements of the genclass. It associates each element to its index. This map does NOT contain the deleted elements.

Constructor Detail

MapAccessor

public MapAccessor(SpeedoGenClassPO apo)
Instanciates and initializes a new map with an initial size.

Method Detail

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.

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

speedoAdd

public boolean speedoAdd(java.lang.Object elemToAdd,
                         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:
elemToAdd - is the element to add

speedoRemove

public boolean speedoRemove(java.lang.Object elemToRemove,
                            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:
elemToRemove - is the element to remove

detachCopy

public void detachCopy(POManagerItf pm,
                       java.util.Map detachCtx,
                       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
detachCtx - 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 attachCtx,
                       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
attachCtx - 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 refreshCtx,
                    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
refreshCtx - 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 retrieveCtx,
                     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
retrieveCtx - 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.

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value,
                            boolean withCoherence)

remove

public java.lang.Object remove(java.lang.Object key,
                               boolean withCoherence)

size

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

isEmpty

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

containsKey

public boolean containsKey(java.lang.Object key)
Specified by:
containsKey in interface java.util.Map

containsValue

public boolean containsValue(java.lang.Object value)
Specified by:
containsValue in interface java.util.Map

get

public java.lang.Object get(java.lang.Object key)
Specified by:
get in interface java.util.Map

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value)
Specified by:
put in interface java.util.Map

remove

public java.lang.Object remove(java.lang.Object key)
Specified by:
remove in interface java.util.Map

putAll

public void putAll(java.util.Map t)
Specified by:
putAll in interface java.util.Map

clear

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

keySet

public java.util.Set keySet()
Specified by:
keySet in interface java.util.Map

values

public java.util.Collection values()
Specified by:
values in interface java.util.Map

entrySet

public java.util.Set entrySet()
Specified by:
entrySet in interface java.util.Map

createPIndexedElem

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

paAdd

public void paAdd(org.objectweb.jorm.api.PIndexedElem elem,
                  java.lang.Object conn)
           throws org.objectweb.jorm.api.PExceptionIO
Specified by:
paAdd in interface org.objectweb.jorm.api.PGenClassAccessor
Overrides:
paAdd in class GenClassAccessor
Throws:
org.objectweb.jorm.api.PExceptionIO

paGetNbElem

public int paGetNbElem()
Specified by:
paGetNbElem in interface org.objectweb.jorm.api.PGenClassAccessor
Overrides:
paGetNbElem in class GenClassAccessor

paIterator

public java.util.Iterator paIterator()
Specified by:
paIterator in interface org.objectweb.jorm.api.PGenClassAccessor
Overrides:
paIterator in class GenClassAccessor

paSetNbElem

public void paSetNbElem(int nbelem)
Specified by:
paSetNbElem in interface org.objectweb.jorm.api.PGenClassAccessor
Overrides:
paSetNbElem in class GenClassAccessor

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

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.