Package jadex.rules.state.javaimpl
Class OAVAbstractState
- java.lang.Object
- 
- jadex.rules.state.javaimpl.OAVAbstractState
 
- 
- All Implemented Interfaces:
- IOAVState
 - Direct Known Subclasses:
- OAVContentIdState,- OAVMixedWeakState,- OAVState
 
 public abstract class OAVAbstractState extends java.lang.Object implements IOAVState An object holding the state as OAV triples (object, attribute, value).
- 
- 
Field SummaryFields Modifier and Type Field Description protected intbeanlistenercntCounter for number of registered bean listeners.protected java.util.MapdeletedobjectsThe deleted objects (only available in event notifications) (oid -> content map).protected OAVEventHandlereventhandlerThe OAV event handler.protected IOAVIdGeneratorgeneratorThe id generator.protected booleanjavaidentityFlag to enable identity handling of java objects (instead of equality).protected java.util.SetjavaobjectsThe java objects set.protected booleannocheckThe flag to disable type checking.protected java.util.MapobjectusagesThe usages of object ids (object id -> usages[map] (objectusage -> cnt)).protected static java.lang.Class[]PCLThe argument types for property change listener adding/removal (cached for speed).protected java.util.MappclsThe Java beans property change listeners.protected IProfilerprofilerThe profiler.protected java.util.SetrootobjectsThe root objects (will not be cleaned up when usages==0) (oids + java objects).protected IOAVState[]substatesList of substates (if any).protected ISynchronizatorsynchronizatorThe synchronizator (if any).protected OAVTypeModeltmodelThe type models.protected static java.lang.StringTYPEThe type identifier.
 - 
Constructor SummaryConstructors Constructor Description OAVAbstractState(OAVTypeModel tmodel)Create a new empty OAV state representation.
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddAttributeValue(java.lang.Object id, OAVAttributeType attribute, java.lang.Object value)Add an attribute of an object (oid) to the given value.abstract voidaddExternalObjectUsage(java.lang.Object id, java.lang.Object external)Add an external usage of a state object (oid).voidaddJavaRootObject(java.lang.Object object)Add a Java object as root object.protected voidaddObjectUsage(java.lang.Object whichid, OAVAttributeType whichattr, java.lang.Object value)Add an object (oid of java object) usage.voidaddStateListener(IOAVStateListener listener, boolean bunch)Add a new state listener.voidaddSubstate(IOAVState substate)Add a substate.protected booleancheckMultiplicity(java.lang.Object id, OAVAttributeType attribute, java.lang.String allowedmult)Ensure that multiplicity is ok.protected booleancheckMultiplicity(java.lang.Object id, OAVAttributeType attribute, java.util.Set allowedmults)Ensure that multiplicity is ok.protected booleancheckTypeDefined(OAVObjectType type)Test if a type is defined in one of the models.protected booleancheckTypeHasAttribute(java.lang.Object id, OAVAttributeType attribute)Ensure that a type has an attribute.protected booleancheckValidStateObject(java.lang.Object id)Test if the object is a valid state object (oid).protected booleancheckValidStateObjectRead(java.lang.Object id)Test if reading the object (oid) is allowed.protected booleancheckValidStateValue(java.lang.Object value)Test if the object is a valid state value, meaning that is either a state object or a java value.protected booleancheckValueCompatibility(java.lang.Object id, OAVAttributeType attribute, java.lang.Object value)Check if it is allowed to set or add an attribute value.booleancontainsKey(java.lang.Object id, OAVAttributeType attribute, java.lang.Object key)Test if a key is contained in the map attribute.booleancontainsObject(java.lang.Object id)Test if the state contains a specific object (oid).IOAVIdGeneratorcreateIdGenerator()Create an id generator.java.lang.ObjectcreateObject(OAVObjectType type)Create an object.protected java.lang.ObjectcreateObject(OAVObjectType type, boolean root)Impl of root/non-root object creation.java.lang.ObjectcreateRootObject(OAVObjectType type)Create a root object.protected voidderegisterValue(OAVJavaType type, java.lang.Object value)Deregister a value for observation.voiddispose()Dispose the state.voiddropObject(java.lang.Object id)Drop an object (oid) from the state.booleanequals(java.lang.Object a, java.lang.Object b)Test if two values are equal according to current identity/equality settings.voidexpungeStaleObjects()Expunge stale objects.java.util.ListfindCycle(java.util.Collection oids)Find a cycle in a given set of objects (oids).protected java.util.ListfindCycleForValue(java.util.Collection oids, java.util.Set checked, java.util.Map edges, java.util.List subgraph, java.lang.Object current, java.lang.Object next, OAVAttributeType attr)Step for one edge of the find cycle algorithm.java.util.CollectiongetAttributeKeys(java.lang.Object id, OAVAttributeType attribute)Get the keys of an attribute of an object.java.lang.ObjectgetAttributeValue(java.lang.Object id, OAVAttributeType attribute)Get an attribute value of an object (oid).java.lang.ObjectgetAttributeValue(java.lang.Object id, OAVAttributeType attribute, java.lang.Object key)Get an attribute value of an object (oid).java.util.CollectiongetAttributeValues(java.lang.Object id, OAVAttributeType attribute)Get the values of an attribute of an object (oid).java.util.IteratorgetDeepObjects()Get all objects (oids and java objects) in the state and its substates.protected java.util.MapgetObject(java.lang.Object id)Get an object map for its id.protected java.util.MapgetObject0(java.lang.Object id)Get an object map for its id.java.util.IteratorgetObjects()Get all objects (oids and java objects) in the state.protected java.util.MapgetObjectUsages(java.lang.Object object)Get all object usages.IProfilergetProfiler()Get the profiler.java.util.CollectiongetReferencingObjects(java.lang.Object value)Get those objects referencing a given object (java object or oid).java.util.IteratorgetRootObjects()Get the root objects (oids and java objects) of the state.intgetSize()Get the number of objects (oids and java objects) in the state.IOAVState[]getSubstates()Get the substates.ISynchronizatorgetSynchronizator()Get the synchronizator (if any).OAVObjectTypegetType(java.lang.Object object)Get the type of an object (oid or java object).OAVTypeModelgetTypeModel()Get the type model.java.util.CollectiongetUnreferencedObjects()Get all unreferenced objects (oids).protected abstract booleaninternalContainsObject(java.lang.Object id)Test if an object is contained in the state.protected abstract java.util.MapinternalCreateObject(java.lang.Object id)Internally create an object.protected voidinternalDropObject(java.lang.Object id, java.util.Set dropset, boolean keepalive)Internal drop method for avoiding cycles in to be dropped objects during a recursive drop operation.protected abstract java.util.MapinternalGetObjectContent(java.lang.Object id)Get the object content of an object.protected abstract java.util.SetinternalGetObjects()Get a set of the internal state objects.protected abstract intinternalObjectsSize()Test how many object are contained in the state.protected abstract java.util.MapinternalRemoveObject(java.lang.Object id)Remove an object from the state objects.protected abstract booleanisExternallyUsed(java.lang.Object id)Test if an object is externally used.booleanisIdentifier(java.lang.Object object)Test if the object represents an identifier.booleanisJavaIdentity()Flag indicating that java objects are stored by identity instead of equality.protected booleanisManaged(java.lang.Object value)Check if a value (oid or java object) is managed by the state.protected booleanisReachable(java.lang.Object id, java.util.Set tested)Test if an object (oid) can be reached from some root or external object.voidnotifyEventListeners()Throw collected events and notify the listeners.protected voidregisterValue(OAVJavaType type, java.lang.Object value)Register a value for observation.voidremoveAttributeValue(java.lang.Object id, OAVAttributeType attribute, java.lang.Object value)Remove an attribute of an object (oid) to the given value.abstract voidremoveExternalObjectUsage(java.lang.Object id, java.lang.Object external)Remove an external usage of a state object (oid).voidremoveJavaRootObject(java.lang.Object object)Drop a Java object from root objects.protected voidremoveObject(java.lang.Object id)Ultimately remove an object (oid), when there are no more external or internal references.protected voidremoveObjectUsage(java.lang.Object whichid, OAVAttributeType whichattr, java.lang.Object value, java.util.Set dropset, boolean keepalive)Remove an object (oid or java object) usage.voidremoveStateListener(IOAVStateListener listener)Remove a state listener.voidsetAttributeValue(java.lang.Object id, OAVAttributeType attribute, java.lang.Object value)Set an attribute of an object (oid) to the given value.voidsetProfiler(IProfiler profiler)Set the profiler.voidsetSynchronizator(ISynchronizator synchronizator)Set the synchronizator.java.lang.StringtoString()Get the string representation of the object.
 
- 
- 
- 
Field Detail- 
PCLprotected static final java.lang.Class[] PCL The argument types for property change listener adding/removal (cached for speed).
 - 
TYPEprotected static final java.lang.String TYPE The type identifier.- See Also:
- Constant Field Values
 
 - 
tmodelprotected OAVTypeModel tmodel The type models.
 - 
rootobjectsprotected java.util.Set rootobjects The root objects (will not be cleaned up when usages==0) (oids + java objects).
 - 
deletedobjectsprotected java.util.Map deletedobjects The deleted objects (only available in event notifications) (oid -> content map).
 - 
javaobjectsprotected java.util.Set javaobjects The java objects set.
 - 
generatorprotected IOAVIdGenerator generator The id generator.
 - 
nocheckprotected boolean nocheck The flag to disable type checking.
 - 
objectusagesprotected java.util.Map objectusages The usages of object ids (object id -> usages[map] (objectusage -> cnt)).
 - 
pclsprotected java.util.Map pcls The Java beans property change listeners.
 - 
eventhandlerprotected OAVEventHandler eventhandler The OAV event handler.
 - 
substatesprotected IOAVState[] substates List of substates (if any).
 - 
synchronizatorprotected ISynchronizator synchronizator The synchronizator (if any).
 - 
beanlistenercntprotected int beanlistenercnt Counter for number of registered bean listeners.
 - 
javaidentityprotected boolean javaidentity Flag to enable identity handling of java objects (instead of equality).
 - 
profilerprotected IProfiler profiler The profiler.
 
- 
 - 
Constructor Detail- 
OAVAbstractStatepublic OAVAbstractState(OAVTypeModel tmodel) Create a new empty OAV state representation.
 
- 
 - 
Method Detail- 
createIdGeneratorpublic IOAVIdGenerator createIdGenerator() Create an id generator.- Returns:
- The id generator.
 
 - 
getTypeModelpublic OAVTypeModel getTypeModel() Get the type model.- Specified by:
- getTypeModelin interface- IOAVState
- Returns:
- The type model.
 
 - 
createObjectpublic java.lang.Object createObject(OAVObjectType type) Create an object. Creates an object identifier that can be used to store/retrieve attribute values. May reuse old object identifiers for performance.- Specified by:
- createObjectin interface- IOAVState
- Parameters:
- type- The object type (null for defining meta types).
- Returns:
- An object identifier.
 
 - 
createRootObjectpublic java.lang.Object createRootObject(OAVObjectType type) Create a root object. A root object will not be automatically garbage collected when no references point to this object any longer. Creates an object identifier that can be used to store/retrieve attribute values. May reuse old object identifiers for performance.- Specified by:
- createRootObjectin interface- IOAVState
- Returns:
- An object identifier.
 
 - 
createObjectprotected java.lang.Object createObject(OAVObjectType type, boolean root) Impl of root/non-root object creation.
 - 
dropObjectpublic void dropObject(java.lang.Object id) Drop an object (oid) from the state. Recursively removes the object and all connected objects that are not referenced elsewhere.- Specified by:
- dropObjectin interface- IOAVState
- Parameters:
- id- The identifier of the object to remove.
 
 - 
addJavaRootObjectpublic void addJavaRootObject(java.lang.Object object) Add a Java object as root object.- Specified by:
- addJavaRootObjectin interface- IOAVState
- Parameters:
- object- The Java object.
 
 - 
removeJavaRootObjectpublic void removeJavaRootObject(java.lang.Object object) Drop a Java object from root objects.- Specified by:
- removeJavaRootObjectin interface- IOAVState
- Parameters:
- object- The Java object.
 
 - 
internalDropObjectprotected void internalDropObject(java.lang.Object id, java.util.Set dropset, boolean keepalive)Internal drop method for avoiding cycles in to be dropped objects during a recursive drop operation.- Parameters:
- id- The object (oid) to be dropped.
- dropset- A set of already dropped objects (to avoid infinite recursion).
- keepalive- A flag indicating that at least one object in the path is externally referenced (object usages will not be removed, but set to external).
 
 - 
removeObjectprotected void removeObject(java.lang.Object id) Ultimately remove an object (oid), when there are no more external or internal references.
 - 
containsObjectpublic boolean containsObject(java.lang.Object id) Test if the state contains a specific object (oid).- Specified by:
- containsObjectin interface- IOAVState
- Parameters:
- id- The object id.
- Returns:
- True, if contained.
 
 - 
isIdentifierpublic boolean isIdentifier(java.lang.Object object) Test if the object represents an identifier.- Specified by:
- isIdentifierin interface- IOAVState
- Parameters:
- object- The suspected object identifier.
- Returns:
- True, if object identifier.
 
 - 
getTypepublic OAVObjectType getType(java.lang.Object object) Get the type of an object (oid or java object).
 - 
getObjectspublic java.util.Iterator getObjects() Get all objects (oids and java objects) in the state.- Specified by:
- getObjectsin interface- IOAVState
 
 - 
getDeepObjectspublic java.util.Iterator getDeepObjects() Get all objects (oids and java objects) in the state and its substates.- Specified by:
- getDeepObjectsin interface- IOAVState
 
 - 
getRootObjectspublic java.util.Iterator getRootObjects() Get the root objects (oids and java objects) of the state.- Specified by:
- getRootObjectsin interface- IOAVState
 
 - 
getSizepublic int getSize() Get the number of objects (oids and java objects) in the state. Optional operation used for debugging only.
 - 
getUnreferencedObjectspublic java.util.Collection getUnreferencedObjects() Get all unreferenced objects (oids).- Specified by:
- getUnreferencedObjectsin interface- IOAVState
- Returns:
- All unreferenced objects of the state.
 
 - 
isReachableprotected boolean isReachable(java.lang.Object id, java.util.Set tested)Test if an object (oid) can be reached from some root or external object.- Parameters:
- id- The object
- tested- The objects already traversed (to avoid endless loops).
 
 - 
findCyclepublic java.util.List findCycle(java.util.Collection oids) Find a cycle in a given set of objects (oids).
 - 
findCycleForValueprotected java.util.List findCycleForValue(java.util.Collection oids, java.util.Set checked, java.util.Map edges, java.util.List subgraph, java.lang.Object current, java.lang.Object next, OAVAttributeType attr)Step for one edge of the find cycle algorithm.- Parameters:
- current- The current node (oid).
- next- The next node (oid).
 
 - 
getReferencingObjectspublic java.util.Collection getReferencingObjects(java.lang.Object value) Get those objects referencing a given object (java object or oid).- Specified by:
- getReferencingObjectsin interface- IOAVState
 
 - 
getAttributeValuepublic java.lang.Object getAttributeValue(java.lang.Object id, OAVAttributeType attribute)Get an attribute value of an object (oid).- Specified by:
- getAttributeValuein interface- IOAVState
- Parameters:
- id- The identifier of the object.
- attribute- The attribute identifier.
- Returns:
- The value (basic, object id or java object).
 
 - 
setAttributeValuepublic void setAttributeValue(java.lang.Object id, OAVAttributeType attribute, java.lang.Object value)Set an attribute of an object (oid) to the given value.- Specified by:
- setAttributeValuein interface- IOAVState
- Parameters:
- id- The identifier of the object.
- attribute- The attribute identifier.
- value- The value (basic, object id or java object).
 
 - 
getAttributeValuespublic java.util.Collection getAttributeValues(java.lang.Object id, OAVAttributeType attribute)Get the values of an attribute of an object (oid).- Specified by:
- getAttributeValuesin interface- IOAVState
- Parameters:
- id- The identifier of the object.
- attribute- The attribute identifier.
- Returns:
- The values (basic, object ids or java objects).
 
 - 
getAttributeKeyspublic java.util.Collection getAttributeKeys(java.lang.Object id, OAVAttributeType attribute)Get the keys of an attribute of an object.- Specified by:
- getAttributeKeysin interface- IOAVState
- Parameters:
- id- The identifier of the object.
- attribute- The attribute identifier.
- Returns:
- The keys for which values are stored.
 
 - 
getAttributeValuepublic java.lang.Object getAttributeValue(java.lang.Object id, OAVAttributeType attribute, java.lang.Object key)Get an attribute value of an object (oid). Method only applicable for map attribute type.- Specified by:
- getAttributeValuein interface- IOAVState
- Parameters:
- id- The identifier of the object.
- attribute- The attribute identifier.
- key- The key.
- Returns:
- The value (basic, object id or java object).
 
 - 
containsKeypublic boolean containsKey(java.lang.Object id, OAVAttributeType attribute, java.lang.Object key)Test if a key is contained in the map attribute.- Specified by:
- containsKeyin interface- IOAVState
- Parameters:
- id- The identifier of the object.
- attribute- The attribute identifier.
- key- The key.
- Returns:
- True if key is available.
 
 - 
addAttributeValuepublic void addAttributeValue(java.lang.Object id, OAVAttributeType attribute, java.lang.Object value)Add an attribute of an object (oid) to the given value.- Specified by:
- addAttributeValuein interface- IOAVState
- Parameters:
- id- The identifier of the object.
- attribute- The attribute identifier.
- value- The value (basic, object id or java object).
 
 - 
removeAttributeValuepublic void removeAttributeValue(java.lang.Object id, OAVAttributeType attribute, java.lang.Object value)Remove an attribute of an object (oid) to the given value.- Specified by:
- removeAttributeValuein interface- IOAVState
- Parameters:
- id- The identifier of the object.
- attribute- The attribute identifier.
- value- The value (basic, object id or java object).
 
 - 
addStateListenerpublic void addStateListener(IOAVStateListener listener, boolean bunch) Add a new state listener.- Specified by:
- addStateListenerin interface- IOAVState
- Parameters:
- listener- The state listener.
- bunch- True, for adding a bunch listener.
 
 - 
removeStateListenerpublic void removeStateListener(IOAVStateListener listener) Remove a state listener.- Specified by:
- removeStateListenerin interface- IOAVState
- Parameters:
- listener- The state listener.
 
 - 
notifyEventListenerspublic void notifyEventListeners() Throw collected events and notify the listeners.- Specified by:
- notifyEventListenersin interface- IOAVState
 
 - 
getProfilerpublic IProfiler getProfiler() Get the profiler.- Specified by:
- getProfilerin interface- IOAVState
 
 - 
setProfilerpublic void setProfiler(IProfiler profiler) Set the profiler.- Specified by:
- setProfilerin interface- IOAVState
 
 - 
expungeStaleObjectspublic void expungeStaleObjects() Expunge stale objects.- Specified by:
- expungeStaleObjectsin interface- IOAVState
 
 - 
setSynchronizatorpublic void setSynchronizator(ISynchronizator synchronizator) Set the synchronizator. The optional synchronizator is used to synchronize external modifications to the state (e.g. from bean changes). The synchronizator should only be set once, before the state is used.- Specified by:
- setSynchronizatorin interface- IOAVState
 
 - 
getSynchronizatorpublic ISynchronizator getSynchronizator() Get the synchronizator (if any). The synchronizator (if available) can be used to synchronize access to the state with internal and external modifications.- Specified by:
- getSynchronizatorin interface- IOAVState
 
 - 
addExternalObjectUsagepublic abstract void addExternalObjectUsage(java.lang.Object id, java.lang.Object external)Add an external usage of a state object (oid). This prevents the oav object of being garbage collected as long as external references are present.- Specified by:
- addExternalObjectUsagein interface- IOAVState
- Parameters:
- id- The oav object id.
- external- The user object.
 
 - 
removeExternalObjectUsagepublic abstract void removeExternalObjectUsage(java.lang.Object id, java.lang.Object external)Remove an external usage of a state object (oid). This allows the oav object of being garbage collected when no further external references and no internal references are present.- Specified by:
- removeExternalObjectUsagein interface- IOAVState
- Parameters:
- id- The oav object id.
- external- The state external object.
 
 - 
toStringpublic java.lang.String toString() Get the string representation of the object.- Overrides:
- toStringin class- java.lang.Object
- Returns:
- The string representation.
 
 - 
getObjectprotected java.util.Map getObject(java.lang.Object id) Get an object map for its id.- Parameters:
- id- The id.
- Returns:
- The object map.
 
 - 
getObject0protected java.util.Map getObject0(java.lang.Object id) Get an object map for its id.- Parameters:
- id- The id.
- Returns:
- The object map.
 
 - 
checkValueCompatibilityprotected boolean checkValueCompatibility(java.lang.Object id, OAVAttributeType attribute, java.lang.Object value)Check if it is allowed to set or add an attribute value. For this purpose it is checked if the value is either a) a ObjectId -> type check via OAVObjectType b) a normal Java object -> type check via OAVJavaType Additionally multiplicity is checked.- Throws:
- java.lang.RuntimeException- if value is not allowed.
 
 - 
checkTypeHasAttributeprotected boolean checkTypeHasAttribute(java.lang.Object id, OAVAttributeType attribute)Ensure that a type has an attribute.- Parameters:
- id- The object (oid).
- attribute- The attribute.
- Throws:
- java.lang.RuntimeException- if value is not allowed.
 
 - 
checkMultiplicityprotected boolean checkMultiplicity(java.lang.Object id, OAVAttributeType attribute, java.util.Set allowedmults)Ensure that multiplicity is ok.- Parameters:
- id- The object (oid).
- attribute- The attribute.
- multiplicity- The multiplicity.
- Throws:
- java.lang.RuntimeException- if value is not allowed.
 
 - 
checkMultiplicityprotected boolean checkMultiplicity(java.lang.Object id, OAVAttributeType attribute, java.lang.String allowedmult)Ensure that multiplicity is ok.- Parameters:
- id- The object (oid).
- attribute- The attribute.
- multiplicity- The multiplicity.
- Throws:
- java.lang.RuntimeException- if value is not allowed.
 
 - 
checkTypeDefinedprotected boolean checkTypeDefined(OAVObjectType type) Test if a type is defined in one of the models.- Parameters:
- type- The type.
- Returns:
- True, if is defined.
 
 - 
checkValidStateObjectprotected boolean checkValidStateObject(java.lang.Object id) Test if the object is a valid state object (oid).- Parameters:
- id- The object (oid).
- Returns:
- True, if valid.
 
 - 
checkValidStateObjectReadprotected boolean checkValidStateObjectRead(java.lang.Object id) Test if reading the object (oid) is allowed. Reading is allowed on removed objects as long as there are external references.- Parameters:
- id- The object (oid).
- Returns:
- True, if valid.
 
 - 
checkValidStateValueprotected boolean checkValidStateValue(java.lang.Object value) Test if the object is a valid state value, meaning that is either a state object or a java value.- Parameters:
- value- The value.
- Returns:
- True, if valid.
 
 - 
addObjectUsageprotected void addObjectUsage(java.lang.Object whichid, OAVAttributeType whichattr, java.lang.Object value)Add an object (oid of java object) usage. For each occurrence of an object in a multi attribute a separate reference is added.- Parameters:
- whichid- The object (oid) that references the value.
- whichattr- The attribute which references the object.
- value- The value (id of the referenced object or java object).
 
 - 
removeObjectUsageprotected void removeObjectUsage(java.lang.Object whichid, OAVAttributeType whichattr, java.lang.Object value, java.util.Set dropset, boolean keepalive)Remove an object (oid or java object) usage.- Parameters:
- whichid- The object that references the value.
- whichattr- The attribute which references the value.
- value- The object id/java value to remove.
- dropset- Already dropped objects in recursive drop (or null if none).
- keepalive- A flag indicating that at least one object in the path is externally referenced (all contained unused objects are set to externally referenced, too).
 
 - 
isManagedprotected boolean isManaged(java.lang.Object value) Check if a value (oid or java object) is managed by the state. Returns true for attribute values which are directly contained oav objects or mutable java objects, e.g. not simple values such as strings or intergers.
 - 
getObjectUsagesprotected java.util.Map getObjectUsages(java.lang.Object object) Get all object usages.- Returns:
- The usages for an object (oid or java object).
 
 - 
registerValueprotected void registerValue(OAVJavaType type, java.lang.Object value) Register a value for observation. If its an expression then add the action, if its a bean then add the property listener.
 - 
deregisterValueprotected void deregisterValue(OAVJavaType type, java.lang.Object value) Deregister a value for observation. If its an expression then clear the action, if its a bean then remove the property listener.
 - 
isExternallyUsedprotected abstract boolean isExternallyUsed(java.lang.Object id) Test if an object is externally used.- Parameters:
- id- The id.
- Returns:
- True, if externally used.
 
 - 
addSubstatepublic void addSubstate(IOAVState substate) Add a substate. Read accesses will be transparently mapped to substates. Write accesses to substates need not be supported and may generate UnsupportedOperationException.- Specified by:
- addSubstatein interface- IOAVState
 
 - 
getSubstatespublic IOAVState[] getSubstates() Get the substates.- Specified by:
- getSubstatesin interface- IOAVState
 
 - 
isJavaIdentitypublic boolean isJavaIdentity() Flag indicating that java objects are stored by identity instead of equality.- Specified by:
- isJavaIdentityin interface- IOAVState
 
 - 
equalspublic boolean equals(java.lang.Object a, java.lang.Object b)Test if two values are equal according to current identity/equality settings.
 - 
internalCreateObjectprotected abstract java.util.Map internalCreateObject(java.lang.Object id) Internally create an object.- Parameters:
- id- The id.
- Returns:
- The content map of the new object.
 
 - 
internalRemoveObjectprotected abstract java.util.Map internalRemoveObject(java.lang.Object id) Remove an object from the state objects.- Parameters:
- id- The id.
- Returns:
- The content map of the object.
 
 - 
internalGetObjectContentprotected abstract java.util.Map internalGetObjectContent(java.lang.Object id) Get the object content of an object.- Parameters:
- id- The id.
- Returns:
- The content map of the object.
 
 - 
internalContainsObjectprotected abstract boolean internalContainsObject(java.lang.Object id) Test if an object is contained in the state.- Parameters:
- id- The id.
- Returns:
- True, if object is contained.
 
 - 
internalObjectsSizeprotected abstract int internalObjectsSize() Test how many object are contained in the state.- Returns:
- The number of objects.
 
 - 
internalGetObjectsprotected abstract java.util.Set internalGetObjects() Get a set of the internal state objects.- Returns:
- A set of the state objects.
 
 
- 
 
-