org.deduced
Class AbstractPropertyCollection<K,V>

java.lang.Object
  extended by org.deduced.AbstractPropertyCollection<K,V>
Type Parameters:
K - the key type
V - the value type
All Implemented Interfaces:
java.lang.Cloneable, PropertyCollection<K,V>
Direct Known Subclasses:
FixedPropertyInstanceCollection, PropertyMap

public abstract class AbstractPropertyCollection<K,V>
extends java.lang.Object
implements PropertyCollection<K,V>

AbstractPropertyCollection : this class implements a list of standard methods for a property collections

Author:
Steve McDuff

Nested Class Summary
private static class AbstractPropertyCollection.CheckParent
          Runnable class used to check for collections that weren't deleted properly.
static class AbstractPropertyCollection.CollectionToDeleteMonitor
          Collection To Delete Monitor
 
Field Summary
private static ActionInvoker ACTION_INVOKER
          action invoker
private static int CHECK_DELETE_MODE
          current collection delete check mode
static int CHECK_DELETE_MODE_AUTOMATIC
          constant used to set the delete mode.
static int CHECK_DELETE_MODE_MANUAL
          constant used to set the delete mode.
private static Runner CHECK_DELETE_RUNNER
          runner that will invoke the delete check
protected static AbstractPropertyCollection.CollectionToDeleteMonitor COLLECTION_TO_DELETE
          collection to delete monitor
private static boolean DELETE_CHECKED_ON_CLEAR_PARENT
          flag used to enable or disable the warning generated when collections aren't deleted as expected.
private  java.lang.Object id
          unique object ID
private static java.util.concurrent.atomic.AtomicLong ID_ASSIGNER
          object unique ID assigner
private  java.lang.Object keyOnParent
          the key on parent
private  WeakList<PropertyListener<? super K,? super V>> listenerList
          list of listeners on the current class.
private static java.util.logging.Logger LOGGER
          Logger
private  PropertyCollection<?,?> parent
          the parent
private static long serialVersionUID
          serialization unique ID
 
Fields inherited from interface org.deduced.PropertyCollection
PROPERTY_COLLECTION_TYPE
 
Constructor Summary
AbstractPropertyCollection()
          default constructor
 
Method Summary
 void activate()
          (non-Javadoc)
private static void addCollectionToDelete(PropertyCollection<?,?> removedCollection)
          Adds a collection that was recently removed from it's parent to the list of collections that should either get a new parent or be deleted.
 void addListener(PropertyListener<? super K,? super V> listener)
          (non-Javadoc)
 java.util.List<Property<V>> asPropertyList()
          (non-Javadoc)
 java.util.Map<K,Property<V>> asPropertyMap()
          (non-Javadoc)
 java.util.List<V> asValueList()
          (non-Javadoc)
 java.util.Map<K,V> asValueMap()
          (non-Javadoc)
protected  AbstractPropertyCollection<K,V> callObjectClone()
          call the object clone method
protected static java.util.logging.Logger classLogger()
          fetch the class logger
protected  void cleanNewlyClonedValue(AbstractPropertyCollection<K,V> newClone)
          clean Newly Cloned Value before additional initialization steps are performed.
 void clear()
          (non-Javadoc)
static void clearCollectionMonitoredForDelete()
          Clear the list of collections that should be deleted after their parent got reset.
 java.lang.Object clone()
          (non-Javadoc)
static
<T extends PropertyCollection<?,?>>
T
cloneCollection(T collectionToClone)
          Utility method to clone a collection and cast it automatically in the right type
 boolean containsInstance(java.lang.Object instance)
          (non-Javadoc)
 boolean containsValue(java.lang.Object value)
          (non-Javadoc)
private static java.lang.IllegalArgumentException createInvalidParentException()
          create an invalid parent exception
protected static java.lang.Object createUniqueID()
          create Unique ID
 void delete()
          (non-Javadoc)
protected  void deleteClearAllProperties()
          step in the deletion process used to clear all the properties in the collection.
protected  void deleteClearListenerList()
          step in the deletion process used to clear the list of listeners
protected  void deleteFireDeleteEvent()
          step in the deletion process used to fire the delete event
protected  void deleteProcessCompletedValidation()
          last step of the delete process where the collection is identified as properly deleted.
protected  void deleteRemoveLocalObjectFromParent()
          step in the deletion process used to remove the current collection from its parent.
protected  void deleteValidateEmptyListenerList()
          step in the deletion process used to verify that no listeners are left.
protected  void deleteValidateNoPendingReferences()
          step in the deletion process used to verify that nobody is referencing the current collection
 boolean equals(java.lang.Object obj)
          (non-Javadoc)
 void firePropertyChangeEvent(PropertyCollection<?,?> description, K key, V oldValue, V newValue, ChangeType type)
          Fire a property change event.
static void flushCollectionsWithNewParent()
          check if all the collections flagged for deletion have been deleted correctly.
static void flushCollectionsWithNewParent(boolean throwException)
          check if all the collections flagged for deletion have been deleted correctly.
static ActionInvoker getActionInvoker()
          get Action Invoker
static int getCheckDeleteMode()
           
protected static Runner getCheckDeleteRunner()
          get Check Delete Runner
 PropertyCollection<?,?> getFixedInstance()
          (non-Javadoc)
static java.lang.Object getInstanceIdentityKey(java.lang.Object value)
          fetch the instance identity code
 int hashCode()
          (non-Javadoc)
 java.lang.Object id()
          (non-JSDoc)
 K instanceKey(java.lang.Object instance)
          (non-Javadoc)
protected  void internalFirePropertyChangeEvent(PropertyCollection<?,?> description, K key, V oldValue, V newValue, ChangeType type)
          Fire a property change event.
 java.lang.Object invokeAction(java.lang.String actionName, InvocationParameter[] parameters)
          (non-JSDoc)
 boolean isActivated()
          (non-Javadoc)
static boolean isDeleteCheckedOnClearParent()
           
 boolean isEmpty()
          (non-Javadoc)
 boolean isListenerRegistered(PropertyListener<? super K,? super V> listener)
          (non-Javadoc)
protected static boolean isParentOrKeyNull(PropertyCollection<?,?> element)
          test if the parent or the key on parent is null on a collection
 java.lang.Object keyOnParent()
          (non-Javadoc)
 PropertyCollection<?,?> parent()
          (non-Javadoc)
 void removeListener(PropertyListener<? super K,? super V> listener)
          (non-Javadoc)
static boolean requiresChangeEvent(java.lang.Object newValue, java.lang.Object oldValue)
          Check to see if a change event is required when a value is changing.
static void setActionInvoker(ActionInvoker setInvoker)
          set Action Invoker
static void setCheckDeleteMode(int setCheckDeleteMode)
           
protected static void setCheckDeleteRunner(Runner setCheckDeleteRunner)
          set Check Delete Runner
static void setDeleteCheckedOnClearParent(boolean setDeleteCheckedOnClearParent)
           
 void setFixedInstance(PropertyCollection<?,?> instance)
          (non-JSDoc)
 void setParent(PropertyCollection<?,?> setParent, java.lang.Object setKeyOnParent)
          (non-Javadoc)
 java.lang.String toString()
          (non-Javadoc)
protected  void updateReference(PropertyCollection<?,?> description, K key, V oldValue, V newValue)
          If reference tracking is enabled, this method will update a reference from the current collection.
protected  void updateReferenceWithReferenceFlag(K key, V oldValue, V newValue, boolean isReference)
          update Reference
static void validateAllPropertyInstances(PropertyCollection<?,?> collectionToValidate, PropertyInstance listFixedInstance)
          validate that all the properties in a collection are of a specific instance.
protected  void validateNoListener(PropertyListener<? super K,? super V> invalidRef)
          validate there is No Listener on the collection with a specific value
protected  void validateNoParentRecursion(PropertyCollection<?,?> parentToValidate)
          validate that there is no recursion in the parent hierarchy.
static void validateParentIsNull(java.lang.Object newValue)
          validate if an object has a null parent.
static void validateParentIsNull(PropertyCollection<?,?> newValue)
          validate if a property collection has a null parent
 K valueKey(java.lang.Object value)
          (non-Javadoc)
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.deduced.PropertyCollection
addProperty, areKeysAssignedAutomatically, asKeySet, containsKey, getProperty, getPropertyValue, iterator, iteratorByValue, removeProperty, removePropertyInstance, removePropertyValue, setProperty, size, type
 

Field Detail

serialVersionUID

private static final long serialVersionUID
serialization unique ID

See Also:
Constant Field Values

ID_ASSIGNER

private static java.util.concurrent.atomic.AtomicLong ID_ASSIGNER
object unique ID assigner


ACTION_INVOKER

private static ActionInvoker ACTION_INVOKER
action invoker


LOGGER

private static final java.util.logging.Logger LOGGER
Logger


parent

private PropertyCollection<?,?> parent
the parent


keyOnParent

private java.lang.Object keyOnParent
the key on parent


id

private java.lang.Object id
unique object ID


listenerList

private transient WeakList<PropertyListener<? super K,? super V>> listenerList
list of listeners on the current class. The listeners are held in a list of weak pointers so the property collection will not hold all it's listeners in memory.


COLLECTION_TO_DELETE

protected static final AbstractPropertyCollection.CollectionToDeleteMonitor COLLECTION_TO_DELETE
collection to delete monitor


CHECK_DELETE_MODE_AUTOMATIC

public static final int CHECK_DELETE_MODE_AUTOMATIC
constant used to set the delete mode. This mode will use Swing to run periodically to check collections that got their parent reset that should be deleted

See Also:
Constant Field Values

CHECK_DELETE_MODE_MANUAL

public static final int CHECK_DELETE_MODE_MANUAL
constant used to set the delete mode. This mode will not perform any automatic checks. If the developer wants to detect collections that should be deleted, he will have to call the method : flushCollectionsWithNewParent

See Also:
Constant Field Values

CHECK_DELETE_MODE

private static int CHECK_DELETE_MODE
current collection delete check mode


CHECK_DELETE_RUNNER

private static Runner CHECK_DELETE_RUNNER
runner that will invoke the delete check


DELETE_CHECKED_ON_CLEAR_PARENT

private static boolean DELETE_CHECKED_ON_CLEAR_PARENT
flag used to enable or disable the warning generated when collections aren't deleted as expected.

Constructor Detail

AbstractPropertyCollection

public AbstractPropertyCollection()
default constructor

Method Detail

createUniqueID

protected static java.lang.Object createUniqueID()
create Unique ID

Returns:
a unique identifier

id

public java.lang.Object id()
(non-JSDoc)

Specified by:
id in interface PropertyCollection<K,V>
Returns:
the collection ID
See Also:
PropertyCollection.id()

addListener

public void addListener(PropertyListener<? super K,? super V> listener)
(non-Javadoc)

Specified by:
addListener in interface PropertyCollection<K,V>
Parameters:
listener - the listener to add
See Also:
PropertyCollection.addListener(org.deduced.PropertyListener)

removeListener

public void removeListener(PropertyListener<? super K,? super V> listener)
(non-Javadoc)

Specified by:
removeListener in interface PropertyCollection<K,V>
Parameters:
listener - the listener to remove
See Also:
PropertyCollection.removeListener(org.deduced.PropertyListener)

isListenerRegistered

public boolean isListenerRegistered(PropertyListener<? super K,? super V> listener)
(non-Javadoc)

Specified by:
isListenerRegistered in interface PropertyCollection<K,V>
Parameters:
listener - the listener to check
Returns:
true if the listener is registered
See Also:
PropertyCollection.isListenerRegistered(org.deduced.PropertyListener)

firePropertyChangeEvent

public void firePropertyChangeEvent(PropertyCollection<?,?> description,
                                    K key,
                                    V oldValue,
                                    V newValue,
                                    ChangeType type)
Fire a property change event. This method also registers references between collection. See the documentation for deduced.ReferenceMap for details.

Parameters:
description - the property description
key - the property key
oldValue - the old value
newValue - the new value
type - the type of change

internalFirePropertyChangeEvent

protected void internalFirePropertyChangeEvent(PropertyCollection<?,?> description,
                                               K key,
                                               V oldValue,
                                               V newValue,
                                               ChangeType type)
Fire a property change event.

Parameters:
description - the property description
key - the property key
oldValue - the old value
newValue - the new value
type - the type of change

updateReference

protected void updateReference(PropertyCollection<?,?> description,
                               K key,
                               V oldValue,
                               V newValue)
If reference tracking is enabled, this method will update a reference from the current collection. It will remove the reference on the old value and create a new one on the new value.

Parameters:
description - the instance used to register the reference
key - the property key for the reference
oldValue - the previous reference
newValue - the new reference

updateReferenceWithReferenceFlag

protected void updateReferenceWithReferenceFlag(K key,
                                                V oldValue,
                                                V newValue,
                                                boolean isReference)
update Reference

Parameters:
key - the key being updated
oldValue - the previous value
newValue - the new value
isReference - flag indicating if the updated property is a reference

containsInstance

public boolean containsInstance(java.lang.Object instance)
(non-Javadoc)

Specified by:
containsInstance in interface PropertyCollection<K,V>
Parameters:
instance - the object instance to look for in the collection.
Returns:
true if the instance is contained in this collection
See Also:
PropertyCollection.containsInstance(java.lang.Object)

containsValue

public boolean containsValue(java.lang.Object value)
(non-Javadoc)

Specified by:
containsValue in interface PropertyCollection<K,V>
Parameters:
value - the object value to look for in the collection.
Returns:
true if the value is contained in this collection
See Also:
PropertyCollection.containsValue(java.lang.Object)

clone

public java.lang.Object clone()
(non-Javadoc)

Specified by:
clone in interface PropertyCollection<K,V>
Overrides:
clone in class java.lang.Object
Returns:
the object clone
See Also:
Object.clone()

cleanNewlyClonedValue

protected void cleanNewlyClonedValue(AbstractPropertyCollection<K,V> newClone)
clean Newly Cloned Value before additional initialization steps are performed.

Parameters:
newClone - the newly created clone of the current collection

callObjectClone

protected AbstractPropertyCollection<K,V> callObjectClone()
                                                   throws java.lang.CloneNotSupportedException
call the object clone method

Returns:
the cloned collection
Throws:
java.lang.CloneNotSupportedException - if clone is not supported

clear

public void clear()
(non-Javadoc)

Specified by:
clear in interface PropertyCollection<K,V>
See Also:
PropertyCollection.clear()

requiresChangeEvent

public static boolean requiresChangeEvent(java.lang.Object newValue,
                                          java.lang.Object oldValue)
Check to see if a change event is required when a value is changing. If both values are property collections, then using the equal operator isn't sufficient as the new old and new values might be equal in values, but they aren't the same, hence, they could evolve and start to be different. In any other case, a simple equal check will be done. This prevents the property collection from sending too many property change events.

Parameters:
newValue - the new value
oldValue - the old value
Returns:
true if a property change event is required.

parent

public PropertyCollection<?,?> parent()
(non-Javadoc)

Specified by:
parent in interface PropertyCollection<K,V>
Returns:
Returns the parent.
See Also:
PropertyCollection.parent()

keyOnParent

public java.lang.Object keyOnParent()
(non-Javadoc)

Specified by:
keyOnParent in interface PropertyCollection<K,V>
Returns:
the key on the parent
See Also:
PropertyCollection.keyOnParent()

setParent

public void setParent(PropertyCollection<?,?> setParent,
                      java.lang.Object setKeyOnParent)
(non-Javadoc)

Specified by:
setParent in interface PropertyCollection<K,V>
Parameters:
setParent - The parent to set.
setKeyOnParent - the key on the parent to reference this object
See Also:
PropertyCollection.setParent(org.deduced.PropertyCollection, java.lang.Object)

validateNoParentRecursion

protected void validateNoParentRecursion(PropertyCollection<?,?> parentToValidate)
validate that there is no recursion in the parent hierarchy.

Parameters:
parentToValidate - the parent to validate

classLogger

protected static java.util.logging.Logger classLogger()
fetch the class logger

Returns:
the class logger

addCollectionToDelete

private static void addCollectionToDelete(PropertyCollection<?,?> removedCollection)
Adds a collection that was recently removed from it's parent to the list of collections that should either get a new parent or be deleted.

Parameters:
removedCollection - the removed collection

flushCollectionsWithNewParent

public static void flushCollectionsWithNewParent()
check if all the collections flagged for deletion have been deleted correctly. If they aren't, an assertion error is generated.


clearCollectionMonitoredForDelete

public static void clearCollectionMonitoredForDelete()
Clear the list of collections that should be deleted after their parent got reset. Useful when doing unit tests where delete validation isn't important.


flushCollectionsWithNewParent

public static void flushCollectionsWithNewParent(boolean throwException)
check if all the collections flagged for deletion have been deleted correctly. If they aren't, an assertion error is generated. Developers can also set the flag to throw exceptions.

Parameters:
throwException - if set to true, an exception will be thrown when there are collections that haven't been deleted.

isParentOrKeyNull

protected static boolean isParentOrKeyNull(PropertyCollection<?,?> element)
test if the parent or the key on parent is null on a collection

Parameters:
element - the collection to test
Returns:
true if either of those fields is null

equals

public boolean equals(java.lang.Object obj)
(non-Javadoc)

Overrides:
equals in class java.lang.Object
See Also:
Object.equals(java.lang.Object)

asPropertyList

public java.util.List<Property<V>> asPropertyList()
(non-Javadoc)

Specified by:
asPropertyList in interface PropertyCollection<K,V>
Returns:
the property collection as a list of Property objects
See Also:
PropertyCollection.asPropertyList()

asValueList

public java.util.List<V> asValueList()
(non-Javadoc)

Specified by:
asValueList in interface PropertyCollection<K,V>
Returns:
the property collection as a list of values
See Also:
PropertyCollection.asValueList()

asPropertyMap

public java.util.Map<K,Property<V>> asPropertyMap()
(non-Javadoc)

Specified by:
asPropertyMap in interface PropertyCollection<K,V>
Returns:
the map containing a list of property objects
See Also:
PropertyCollection.asPropertyMap()

asValueMap

public java.util.Map<K,V> asValueMap()
(non-Javadoc)

Specified by:
asValueMap in interface PropertyCollection<K,V>
Returns:
the map containing the values in the collection
See Also:
PropertyCollection.asValueMap()

isEmpty

public boolean isEmpty()
(non-Javadoc)

Specified by:
isEmpty in interface PropertyCollection<K,V>
Returns:
true if the collection is empty
See Also:
PropertyCollection.isEmpty()

instanceKey

public K instanceKey(java.lang.Object instance)
(non-Javadoc)

Specified by:
instanceKey in interface PropertyCollection<K,V>
Parameters:
instance - the object instance
Returns:
the key of this instance
See Also:
PropertyCollection.instanceKey(java.lang.Object)

valueKey

public K valueKey(java.lang.Object value)
(non-Javadoc)

Specified by:
valueKey in interface PropertyCollection<K,V>
Parameters:
value - the value to check for
Returns:
the key representing the value
See Also:
PropertyCollection.valueKey(java.lang.Object)

hashCode

public int hashCode()
(non-Javadoc)

Overrides:
hashCode in class java.lang.Object
See Also:
Object.hashCode()

toString

public java.lang.String toString()
(non-Javadoc)

Overrides:
toString in class java.lang.Object
See Also:
Object.toString()

delete

public void delete()
(non-Javadoc)

Specified by:
delete in interface PropertyCollection<K,V>
See Also:
PropertyCollection.delete()

deleteClearListenerList

protected void deleteClearListenerList()
step in the deletion process used to clear the list of listeners


deleteFireDeleteEvent

protected void deleteFireDeleteEvent()
step in the deletion process used to fire the delete event


deleteValidateNoPendingReferences

protected void deleteValidateNoPendingReferences()
step in the deletion process used to verify that nobody is referencing the current collection


deleteRemoveLocalObjectFromParent

protected void deleteRemoveLocalObjectFromParent()
step in the deletion process used to remove the current collection from its parent.


deleteValidateEmptyListenerList

protected void deleteValidateEmptyListenerList()
step in the deletion process used to verify that no listeners are left.


validateNoListener

protected void validateNoListener(PropertyListener<? super K,? super V> invalidRef)
validate there is No Listener on the collection with a specific value

Parameters:
invalidRef - the possible listener. Null indicates that it might have been garbage collected.

deleteClearAllProperties

protected void deleteClearAllProperties()
step in the deletion process used to clear all the properties in the collection. This will invoke the delete method on all the child collections.


deleteProcessCompletedValidation

protected void deleteProcessCompletedValidation()
last step of the delete process where the collection is identified as properly deleted.


cloneCollection

public static <T extends PropertyCollection<?,?>> T cloneCollection(T collectionToClone)
Utility method to clone a collection and cast it automatically in the right type

Type Parameters:
T - the type of the cloned collection
Parameters:
collectionToClone - the collection to clone
Returns:
the collection clone

getInstanceIdentityKey

public static java.lang.Object getInstanceIdentityKey(java.lang.Object value)
fetch the instance identity code

Parameters:
value - the value from which to fetch the identity code
Returns:
the identity code

validateParentIsNull

public static void validateParentIsNull(java.lang.Object newValue)
validate if an object has a null parent.

Parameters:
newValue - the new value that should have a null parent

validateParentIsNull

public static void validateParentIsNull(PropertyCollection<?,?> newValue)
validate if a property collection has a null parent

Parameters:
newValue - the new value that should have a null parent

createInvalidParentException

private static java.lang.IllegalArgumentException createInvalidParentException()
create an invalid parent exception

Returns:
the created exception

activate

public void activate()
(non-Javadoc)

Specified by:
activate in interface PropertyCollection<K,V>
See Also:
PropertyCollection.activate()

isActivated

public boolean isActivated()
(non-Javadoc)

Specified by:
isActivated in interface PropertyCollection<K,V>
Returns:
true if the collection is activated
See Also:
PropertyCollection.isActivated()

getFixedInstance

public PropertyCollection<?,?> getFixedInstance()
(non-Javadoc)

Specified by:
getFixedInstance in interface PropertyCollection<K,V>
Returns:
the fixed instance. Null if there is no fixed instance.
See Also:
PropertyCollection.getFixedInstance()

setFixedInstance

public void setFixedInstance(PropertyCollection<?,?> instance)
(non-JSDoc)

Specified by:
setFixedInstance in interface PropertyCollection<K,V>
Parameters:
instance - the new fixed instance
See Also:
PropertyCollection.setFixedInstance(org.deduced.PropertyCollection)

validateAllPropertyInstances

public static void validateAllPropertyInstances(PropertyCollection<?,?> collectionToValidate,
                                                PropertyInstance listFixedInstance)
validate that all the properties in a collection are of a specific instance.

Parameters:
collectionToValidate - the collection to validate
listFixedInstance - the fixed instance of the collection

setCheckDeleteRunner

protected static void setCheckDeleteRunner(Runner setCheckDeleteRunner)
set Check Delete Runner

Parameters:
setCheckDeleteRunner - the runner used to check deleted collections

getCheckDeleteRunner

protected static Runner getCheckDeleteRunner()
get Check Delete Runner

Returns:
the runner used to check deleted collections

setDeleteCheckedOnClearParent

public static void setDeleteCheckedOnClearParent(boolean setDeleteCheckedOnClearParent)
Parameters:
setDeleteCheckedOnClearParent - option if Delete is Checked On Clear Parent

isDeleteCheckedOnClearParent

public static boolean isDeleteCheckedOnClearParent()
Returns:
the Delete is Checked On Clear Parent option

setCheckDeleteMode

public static void setCheckDeleteMode(int setCheckDeleteMode)
Parameters:
setCheckDeleteMode - the check delete mode to set

getCheckDeleteMode

public static int getCheckDeleteMode()
Returns:
the check delete mode

invokeAction

public java.lang.Object invokeAction(java.lang.String actionName,
                                     InvocationParameter[] parameters)
                              throws java.lang.IllegalArgumentException,
                                     java.lang.reflect.InvocationTargetException,
                                     java.lang.NullPointerException,
                                     CompilationFailedException,
                                     java.lang.IllegalStateException
(non-JSDoc)

Specified by:
invokeAction in interface PropertyCollection<K,V>
Parameters:
actionName - the action name to invoke
parameters - the list of parameter and value to invoke. Any parameter not in this list will be assigned a default value. If a parameter doesn't have a default value, an InvocationTargetException will be thrown.
Returns:
the action return value
Throws:
java.lang.IllegalArgumentException - if some of the parameters are wrong or missing or the action fails to compile.
java.lang.reflect.InvocationTargetException - if the action code throws an exception.
java.lang.NullPointerException - if the actionName parameter is null.
CompilationFailedException - if action failed to compile.
java.lang.IllegalStateException - if action isn't enabled.
See Also:
PropertyCollection.invokeAction(java.lang.String, org.deduced.InvocationParameter[])

getActionInvoker

public static ActionInvoker getActionInvoker()
get Action Invoker

Returns:
the action invoker

setActionInvoker

public static void setActionInvoker(ActionInvoker setInvoker)
set Action Invoker

Parameters:
setInvoker - the new action invoker