| java.lang.Object com.ecyrd.jspwiki.workflow.AbstractStep com.ecyrd.jspwiki.workflow.Decision
All known Subclasses: com.ecyrd.jspwiki.workflow.SimpleNotification, com.ecyrd.jspwiki.workflow.SimpleDecision,
Decision | abstract public class Decision extends AbstractStep (Code) | |
AbstractStep subclass that asks an actor Principal to choose an Outcome on
behalf of an owner (also a Principal). The actor "makes the decision" by
calling the
Decision.decide(Outcome) method. When this method is called,
it will set the Decision's Outcome to the one supplied. If the parent
Workflow is in the
Workflow.WAITING state, it will be re-started.
Any checked WikiExceptions thrown by the workflow after re-start will be
re-thrown to callers.
When a Decision completes, its
Decision.isCompleted() method returns true . It also tells its
parent WorkflowManager to remove it from the list of pending tasks by calling
DecisionQueue.remove(Decision) .
To enable actors to choose an appropriate Outcome, Decisions can store
arbitrary key-value pairs called "facts." These facts can be presented by the
user interface to show details the actor needs to know about. Facts are added
by calling classes to the Decision, in order of expected presentation, by the
Decision.addFact(Fact) method. They can be retrieved, in order, via
Decision.getFacts() .
author: Andrew Jaquith since: 2.5 |
Constructor Summary | |
public | Decision(Workflow workflow, String messageKey, Principal actor, Outcome defaultOutcome) Constructs a new Decision for a required "actor" Principal, having a default Outcome. |
Method Summary | |
final public void | addFact(Fact fact) Appends a Fact to the list of Facts associated with this Decision. | public void | decide(Outcome outcome) Sets this Decision's outcome, and restarts the parent Workflow if
it is in the
Workflow.WAITING state and this Decision is
its currently active Step. | public Outcome | execute() Default implementation that always returns
Outcome.STEP_CONTINUE if the current Outcome isn't a completion (which will be true if the
Decision.decide(Outcome) method hasn't been executed yet. | final public Principal | getActor() | public Outcome | getDefaultOutcome() Returns the default or suggested outcome, which must be one of those
returned by
Decision.getAvailableOutcomes() . | final public List | getFacts() Returns the Facts associated with this Decision, in the order in which
they were added. | final public int | getId() Returns the unique identifier for this Decision. | public boolean | isReassignable() Returns true if the Decision can be reassigned to another
actor. | final public synchronized void | reassign(Principal actor) Reassigns the Decision to a new actor (that is, provide an outcome). | final public void | setId(int id) Sets the unique identfier for this Decision. |
Decision | public Decision(Workflow workflow, String messageKey, Principal actor, Outcome defaultOutcome)(Code) | | Constructs a new Decision for a required "actor" Principal, having a default Outcome.
Parameters: workflow - the parent Workflow object Parameters: messageKey - the i18n message key that represents the message the actor will see Parameters: actor - the Principal (e.g., a WikiPrincipal, Role, GroupPrincipal) who isrequired to select an appropriate Outcome Parameters: defaultOutcome - the Outcome that the user interface will recommend as thedefault choice |
addFact | final public void addFact(Fact fact)(Code) | | Appends a Fact to the list of Facts associated with this Decision.
Parameters: fact - the new fact to add |
decide | public void decide(Outcome outcome) throws WikiException(Code) | | Sets this Decision's outcome, and restarts the parent Workflow if
it is in the
Workflow.WAITING state and this Decision is
its currently active Step. Any checked WikiExceptions thrown by
the workflow after re-start will be re-thrown to callers.
This method cannot be invoked if the Decision is not the
current Workflow step; all other invocations will throw
an IllegalStateException. If the Outcome supplied to this method
is one one of the Outcomes returned by
Decision.getAvailableOutcomes() ,
an IllegalArgumentException will be thrown.
Parameters: outcome - the Outcome of the Decision throws: WikiException - if the act of restarting the Workflow throws an exception |
getDefaultOutcome | public Outcome getDefaultOutcome()(Code) | | Returns the default or suggested outcome, which must be one of those
returned by
Decision.getAvailableOutcomes() . This method is guaranteed
to return a non-null Outcome.
the default outcome. |
getFacts | final public List getFacts()(Code) | | Returns the Facts associated with this Decision, in the order in which
they were added.
the list of Facts |
getId | final public int getId()(Code) | | Returns the unique identifier for this Decision. Normally, this ID is
programmatically assigned when the Decision is added to the
DecisionQueue.
the identifier |
isReassignable | public boolean isReassignable()(Code) | | Returns true if the Decision can be reassigned to another
actor. This implementation always returns true .
the result |
reassign | final public synchronized void reassign(Principal actor)(Code) | | Reassigns the Decision to a new actor (that is, provide an outcome).
If the Decision is not reassignable, this method throws
an IllegalArgumentException.
Parameters: actor - the actor to reassign the Decision to |
setId | final public void setId(int id)(Code) | | Sets the unique identfier for this Decision.
Parameters: id - the identifier |
|
|