public class Goal
extends java.lang.Object
A Goal embodies both an action and the precursors for that action. A Goal's precursors
will be satisfied before attempting to perform the target Goal's action. There may be a case that
once precursors have been satisfied there is no further action required to be perform for a particular
Goal.
A Goal's postcursors are also tracked so that if a Goal's state has been changed and
the Goals ahead of it in the hierarchy need to be notified, it can percolate forward
and have it's postcursors satisfied.
WerkzProject,
Action| Modifier and Type | Field and Description |
|---|---|
static Goal[] |
EMPTY_ARRAY
Empty
Goal array. |
| Constructor and Description |
|---|
Goal(java.lang.String name)
Construct a new
Goal with the specified name. |
Goal(java.lang.String name,
Action action)
Construct a new
Goal with the specified name and Action. |
| Modifier and Type | Method and Description |
|---|---|
void |
addPostActionCallback(PostActionCallback callback)
Add a post-action callback to this
Goal. |
void |
addPostcursor(Goal postcursor)
Add a postcursor
Goal to this Goal. |
void |
addPostGoalCallback(PostGoalCallback callback)
Add a post-goal callback to this
Goal. |
void |
addPreActionCallback(PreActionCallback callback)
Add a pre-action callback to this
Goal. |
void |
addPrecursor(Goal precursor)
Add a precursor
Goal to this Goal. |
void |
addPreGoalCallback(PreGoalCallback callback)
Add a pre-goal callback to this
Goal. |
void |
attain(Session session)
Attempt to attain this
Goal. |
(package private) void |
attainPrecursors(Session session)
Attempt to attain this
Goal's precursor Goals. |
(package private) void |
checkForCycles()
Perform a cyclic dependency check.
|
(package private) void |
checkForCycles(Goal initialGoal,
java.util.Set visited)
Perform a cyclic dependency check.
|
boolean |
equals(java.lang.Object thatObj)
Determine if two
Goal objects are equivelant. |
(package private) void |
firePostActionCallbacks()
Fire the post-action callbacks.
|
(package private) void |
firePostGoalCallbacks()
Fire the post-goal callbacks.
|
(package private) void |
firePreActionCallbacks()
Fire the pre-action callbacks.
|
(package private) void |
firePreGoalCallbacks()
Fire the pre-goal callbacks.
|
Action |
getAction()
Retrieve the
Action of this Goal. |
java.lang.String |
getDescription()
Retrieve the description of this
Goal. |
java.lang.String |
getName()
Retrieve the name of this
Goal. |
java.util.List |
getPostActionCallbacks()
Retrieve an unmodifiable list of the post-action callbacks.
|
java.util.List |
getPostcursors()
Retrive an unmodifiable
List of this Goal's postcursor Goals. |
java.util.List |
getPostGoalCallbacks()
Retrieve an unmodifiable list of the post-goal callbacks.
|
java.util.List |
getPreActionCallbacks()
Retrieve an unmodifiable list of the pre-action callbacks.
|
java.util.List |
getPrecursors()
Retrieve an unmodifiable
List of this Goal's precursor Goals. |
java.util.List |
getPreGoalCallbacks()
Retrieve an unmodifiable list of the pre-goal callbacks.
|
int |
hashCode()
Retrieve the hash-code of this object.
|
boolean |
isSatisfied(Session session)
Determine if this
Goal has been satisfied for the specified Session. |
void |
percolate(Session session)
Attempt to percolate this
Goal through to its Postcursors. |
(package private) void |
percolatePostcursors(Session session)
Attempt to attain this
Goal's postcursor Goals. |
void |
removePostActionCallback(PostActionCallback callback)
Remove all occurences of a post-action callback from this
Goal. |
void |
removePostGoalCallback(PostGoalCallback callback)
Remove all occurences of a post-goal callback from this
Goal. |
void |
removePreActionCallback(PreActionCallback callback)
Remove all occurences of a pre-action callback from this
Goal. |
void |
removePreGoalCallback(PreGoalCallback callback)
Remove all occurences of a pre-goal callback from this
Goal. |
void |
setAction(Action action)
Set the
Action of this Goal. |
void |
setDescription(java.lang.String description)
Set the description for this
Goal. |
java.lang.String |
toString()
Produce a textual representation suitable for debugging.
|
public static final Goal[] EMPTY_ARRAY
Goal array.public Goal(java.lang.String name)
Goal with the specified name.name - The name of the Goal.public Goal(java.lang.String name,
Action action)
Goal with the specified name and Action.name - The name of the Goal.action - The Action for this Goal.public java.lang.String getName()
Goal.Goal's name.public java.lang.String getDescription()
Goal.public void setDescription(java.lang.String description)
Goal.description - The description of this goal.public Action getAction()
Action of this Goal.Action of this Goal.public void setAction(Action action)
Action of this Goal.action - The Action of this Goal.public void addPreGoalCallback(PreGoalCallback callback)
Goal.callback - The callback to add.public void removePreGoalCallback(PreGoalCallback callback)
Goal.callback - The callback to remove.public java.util.List getPreGoalCallbacks()
List of PreGoalCallbacks.public void addPostGoalCallback(PostGoalCallback callback)
Goal.callback - The callback to add.public void removePostGoalCallback(PostGoalCallback callback)
Goal.callback - The callback to remove.public java.util.List getPostGoalCallbacks()
List of PostGoalCallbacks.public void addPreActionCallback(PreActionCallback callback)
Goal.callback - The callback to add.public void removePreActionCallback(PreActionCallback callback)
Goal.callback - The callback to remove.public java.util.List getPreActionCallbacks()
List of PreActionCallbacks.public void addPostActionCallback(PostActionCallback callback)
Goal.callback - The callback to add.public void removePostActionCallback(PostActionCallback callback)
Goal.callback - The callback to remove.public java.util.List getPostActionCallbacks()
List of PostActionCallbacks.public boolean isSatisfied(Session session)
Goal has been satisfied for the specified Session.session - The Session context in which to test for goal satisfaction.true if this Goal has been satisfied within the Session,
otherwise false.public void addPrecursor(Goal precursor) throws CyclicGoalChainException
Goal to this Goal.precursor - The precursor Goal that must be satisfied before performing this Goal.CyclicGoalChainException - if adding the precursor would result in a cyclic dependency.public void addPostcursor(Goal postcursor) throws CyclicGoalChainException
Goal to this Goal.postcursor - The postcursor Goal that depends on this Goal.CyclicGoalChainException - if adding the postcursor would result in a cyclic dependency.public java.util.List getPrecursors()
List of this Goal's precursor Goals.List of precursor Goals.public java.util.List getPostcursors()
List of this Goal's postcursor Goals.List of postcursor Goals.void attainPrecursors(Session session) throws UnattainableGoalException, NoActionDefinitionException
Goal's precursor Goals.session - The context in which to attain goals.UnattainableGoalException - if unable to satisfy a precursor.NoActionDefinitionException - if this goal contains no action definition.void percolatePostcursors(Session session) throws UnattainableGoalException, NoActionDefinitionException
Goal's postcursor Goals.session - The context in which to attain goals.UnattainableGoalException - if unable to satisfy a postcursor.NoActionDefinitionException - if this goal contains no action definition.void checkForCycles()
throws CyclicGoalChainException
CyclicGoalChainException - if a dependency cycle is discovered.void checkForCycles(Goal initialGoal, java.util.Set visited) throws CyclicGoalChainException
initialGoal - The root Goal initiating the cycle check.visited - The Set of all Goals visited between the root initialGoal
and this Goal.CyclicGoalChainException - if a cyclic dependency is detected.public final void attain(Session session) throws UnattainableGoalException, NoActionDefinitionException
Goal.session - The context in which to attain goals.UnattainableGoalException - if unable to attain this Goal or one of its precursor Goals.NoActionDefinitionException - if this goal contains no action definition.public final void percolate(Session session) throws UnattainableGoalException, NoActionDefinitionException
Goal through to its Postcursors.session - The context in which to percolate goals.UnattainableGoalException - if unable to attain this Goal or one of its precursor Goals.NoActionDefinitionException - if this goal contains no action definition.void firePreGoalCallbacks()
throws java.lang.Exception
java.lang.Exception - if an error occurs while firing a callback.void firePostGoalCallbacks()
throws java.lang.Exception
java.lang.Exception - if an error occurs while firing a callback.void firePreActionCallbacks()
throws java.lang.Exception
java.lang.Exception - if an error occurs while firing a callback.void firePostActionCallbacks()
throws java.lang.Exception
java.lang.Exception - if an error occurs while firing a callback.public int hashCode()
The hash-code is derrived only from the name of the Goal as returned by getName().
hashCode in class java.lang.Objectpublic boolean equals(java.lang.Object thatObj)
Goal objects are equivelant.
Equivelancy is determined only from the names of the Goals as return by getName().
equals in class java.lang.ObjectthatObj - The object to compare to this object.public java.lang.String toString()
toString in class java.lang.ObjectCopyright © 2001-2013 Apache Software Foundation. All Rights Reserved.