Package jadex.rules.state
Interface IOAVState
-
- All Known Implementing Classes:
CopyState
,OAVAbstractState
,OAVContentIdState
,OAVMixedWeakState
,OAVState
,OAVWeakState
public interface IOAVState
An object holding the state as OAV triples (object, attribute, value).
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addAttributeValue(java.lang.Object object, OAVAttributeType attribute, java.lang.Object value)
Add an attribute of an object to the given value.void
addExternalObjectUsage(java.lang.Object id, java.lang.Object external)
Add an external usage of a state object.void
addJavaRootObject(java.lang.Object object)
Add a Java object as root object.void
addStateListener(IOAVStateListener listener, boolean bunch)
Add a new state listener.void
addSubstate(IOAVState substate)
Add a substate.boolean
containsKey(java.lang.Object object, OAVAttributeType attribute, java.lang.Object key)
Test if a key is contained in the map attribute.boolean
containsObject(java.lang.Object object)
Test if the state contains a specific object.java.lang.Object
createObject(OAVObjectType type)
Create an object.java.lang.Object
createRootObject(OAVObjectType type)
Create a root object.void
dispose()
Dispose the state.void
dropObject(java.lang.Object object)
Drop an object from the state.boolean
equals(java.lang.Object a, java.lang.Object b)
Test if two values are equal according to current identity/equality settings.void
expungeStaleObjects()
Expunge stale objects.java.util.List
findCycle(java.util.Collection objects)
Find a cycle in a given set of objects.java.util.Collection
getAttributeKeys(java.lang.Object object, OAVAttributeType attribute)
Get the keys of an attribute of an object.java.lang.Object
getAttributeValue(java.lang.Object object, OAVAttributeType attribute)
Get an attribute value of an object.java.lang.Object
getAttributeValue(java.lang.Object object, OAVAttributeType attribute, java.lang.Object key)
Get an attribute value of an object.java.util.Collection
getAttributeValues(java.lang.Object object, OAVAttributeType attribute)
Get the values of an attribute of an object.java.util.Iterator
getDeepObjects()
Get all objects in the state and its substates.java.util.Iterator
getObjects()
Get all objects in the state.IProfiler
getProfiler()
Get the profiler.java.util.Collection
getReferencingObjects(java.lang.Object value)
Get those objects referencing a given object.java.util.Iterator
getRootObjects()
Get the root objects of the state.int
getSize()
Get the number of objects in the state.IOAVState[]
getSubstates()
Get the substates.ISynchronizator
getSynchronizator()
Get the synchronizator (if any).OAVObjectType
getType(java.lang.Object object)
Get the type of an object.OAVTypeModel
getTypeModel()
Get the type model.java.util.Collection
getUnreferencedObjects()
Get all unreferenced objects.boolean
isIdentifier(java.lang.Object object)
Test if the object represents an identifier.boolean
isJavaIdentity()
Flag indicating that java objects are stored by identity instead of equality.void
notifyEventListeners()
Throw collected events and notify the listeners.void
removeAttributeValue(java.lang.Object object, OAVAttributeType attribute, java.lang.Object value)
Remove an attribute of an object to the given value.void
removeExternalObjectUsage(java.lang.Object id, java.lang.Object external)
Remove an external usage of a state object.void
removeJavaRootObject(java.lang.Object object)
Remove a Java object from root objects.void
removeStateListener(IOAVStateListener listener)
Remove a state listener.void
setAttributeValue(java.lang.Object object, OAVAttributeType attribute, java.lang.Object value)
Set an attribute of an object to the given value.void
setProfiler(IProfiler profiler)
Set the profiler.void
setSynchronizator(ISynchronizator synchronizator)
Set the synchronizator.
-
-
-
Method Detail
-
getTypeModel
OAVTypeModel getTypeModel()
Get the type model.- Returns:
- The type model.
-
dispose
void dispose()
Dispose the state.
-
createObject
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.- Parameters:
type
- The object type (null for defining meta types).- Returns:
- An object identifier.
-
createRootObject
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.- Returns:
- An object identifier.
-
dropObject
void dropObject(java.lang.Object object)
Drop an object from the state. Recursively removes the object and all connected objects that are not referenced elsewhere.- Parameters:
object
- The identifier of the object to remove.
-
addJavaRootObject
void addJavaRootObject(java.lang.Object object)
Add a Java object as root object.- Parameters:
object
- The Java object.
-
removeJavaRootObject
void removeJavaRootObject(java.lang.Object object)
Remove a Java object from root objects.- Parameters:
object
- The Java object.
-
containsObject
boolean containsObject(java.lang.Object object)
Test if the state contains a specific object.- Parameters:
object
- The object identifier.- Returns:
- True, if contained.
-
isIdentifier
boolean isIdentifier(java.lang.Object object)
Test if the object represents an identifier.- Parameters:
object
- The suspected object identifier.- Returns:
- True, if object identifier.
-
getType
OAVObjectType getType(java.lang.Object object)
Get the type of an object.- Parameters:
object
- The object identifier.
-
getObjects
java.util.Iterator getObjects()
Get all objects in the state.
-
getDeepObjects
java.util.Iterator getDeepObjects()
Get all objects in the state and its substates.
-
getRootObjects
java.util.Iterator getRootObjects()
Get the root objects of the state.
-
getSize
int getSize()
Get the number of objects in the state. Optional operation used for debugging only.
-
getUnreferencedObjects
java.util.Collection getUnreferencedObjects()
Get all unreferenced objects.- Returns:
- All unreferenced objects of the state.
-
findCycle
java.util.List findCycle(java.util.Collection objects)
Find a cycle in a given set of objects.
-
getReferencingObjects
java.util.Collection getReferencingObjects(java.lang.Object value)
Get those objects referencing a given object.
-
addExternalObjectUsage
void addExternalObjectUsage(java.lang.Object id, java.lang.Object external)
Add an external usage of a state object. This prevents the oav object of being garbage collected as long as external references are present.- Parameters:
id
- The oav object id.external
- The user object.
-
removeExternalObjectUsage
void removeExternalObjectUsage(java.lang.Object id, java.lang.Object external)
Remove an external usage of a state object. This allows the oav object of being garbage collected when no further external references and no internal references are present.- Parameters:
id
- The oav object id.external
- The state external object.
-
getAttributeValue
java.lang.Object getAttributeValue(java.lang.Object object, OAVAttributeType attribute)
Get an attribute value of an object.- Parameters:
object
- The identifier of the object.attribute
- The attribute identifier.- Returns:
- The value (basic, object id or java object).
-
setAttributeValue
void setAttributeValue(java.lang.Object object, OAVAttributeType attribute, java.lang.Object value)
Set an attribute of an object to the given value.- Parameters:
object
- The identifier of the object.attribute
- The attribute identifier.value
- The value (basic, object id or java object).
-
getAttributeValues
java.util.Collection getAttributeValues(java.lang.Object object, OAVAttributeType attribute)
Get the values of an attribute of an object.- Parameters:
object
- The identifier of the object.attribute
- The attribute identifier.- Returns:
- The values (basic, object ids or java objects).
-
getAttributeKeys
java.util.Collection getAttributeKeys(java.lang.Object object, OAVAttributeType attribute)
Get the keys of an attribute of an object.- Parameters:
object
- The identifier of the object.attribute
- The attribute identifier.- Returns:
- The keys for which values are stored.
-
getAttributeValue
java.lang.Object getAttributeValue(java.lang.Object object, OAVAttributeType attribute, java.lang.Object key)
Get an attribute value of an object. Method only applicable for map attribute type.- Parameters:
object
- The identifier of the object.attribute
- The attribute identifier.key
- The key.- Returns:
- The value (basic, object id or java object).
-
containsKey
boolean containsKey(java.lang.Object object, OAVAttributeType attribute, java.lang.Object key)
Test if a key is contained in the map attribute.- Parameters:
object
- The identifier of the object.attribute
- The attribute identifier.key
- The key.- Returns:
- True if key is available.
-
addAttributeValue
void addAttributeValue(java.lang.Object object, OAVAttributeType attribute, java.lang.Object value)
Add an attribute of an object to the given value.- Parameters:
object
- The identifier of the object.attribute
- The attribute identifier.value
- The value (basic, object id or java object).
-
removeAttributeValue
void removeAttributeValue(java.lang.Object object, OAVAttributeType attribute, java.lang.Object value)
Remove an attribute of an object to the given value.- Parameters:
object
- The identifier of the object.attribute
- The attribute identifier.value
- The value (basic, object id or java object).
-
addStateListener
void addStateListener(IOAVStateListener listener, boolean bunch)
Add a new state listener.- Parameters:
listener
- The state listener.bunch
- True, for adding a bunch listener.
-
removeStateListener
void removeStateListener(IOAVStateListener listener)
Remove a state listener.- Parameters:
listener
- The state listener.
-
notifyEventListeners
void notifyEventListeners()
Throw collected events and notify the listeners. Necessary if in event collecting mode.
-
expungeStaleObjects
void expungeStaleObjects()
Expunge stale objects.
-
setSynchronizator
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.
-
getSynchronizator
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.
-
getProfiler
IProfiler getProfiler()
Get the profiler.
-
setProfiler
void setProfiler(IProfiler profiler)
Set the profiler.
-
addSubstate
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. Also it can not be assumed that addition of substates will generate object added events.
-
getSubstates
IOAVState[] getSubstates()
Get the substates.
-
isJavaIdentity
boolean isJavaIdentity()
Flag indicating that java objects are stored by identity instead of equality.
-
equals
boolean equals(java.lang.Object a, java.lang.Object b)
Test if two values are equal according to current identity/equality settings.
-
-