|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.wiki.workflow.AbstractStep org.apache.wiki.workflow.Decision
public abstract class Decision
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 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 AbstractStep.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
addFact(Fact)
method. They can be retrieved, in order, via
getFacts()
.
Constructor Summary | |
---|---|
Decision(Workflow workflow,
String messageKey,
Principal actor,
Outcome defaultOutcome)
Constructs a new Decision for a required "actor" Principal, having a default Outcome. |
Method Summary | |
---|---|
void |
addFact(Fact fact)
Appends a Fact to the list of Facts associated with this Decision. |
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. |
Outcome |
execute()
Default implementation that always returns Outcome.STEP_CONTINUE
if the current Outcome isn't a completion (which will be true if the
decide(Outcome) method hasn't been executed yet. |
Principal |
getActor()
The Principal responsible for completing this Step, such as a system user or actor assigned to a Decision. |
Outcome |
getDefaultOutcome()
Returns the default or suggested outcome, which must be one of those returned by AbstractStep.getAvailableOutcomes() . |
List |
getFacts()
Returns the Facts associated with this Decision, in the order in which they were added. |
int |
getId()
Returns the unique identifier for this Decision. |
boolean |
isReassignable()
Returns true if the Decision can be reassigned to another
actor. |
void |
reassign(Principal actor)
Reassigns the Decision to a new actor (that is, provide an outcome). |
void |
setId(int id)
Sets the unique identfier for this Decision. |
Methods inherited from class org.apache.wiki.workflow.AbstractStep |
---|
addError, addSuccessor, getAvailableOutcomes, getEndTime, getErrors, getMessageArguments, getMessageKey, getOutcome, getOwner, getStartTime, getSuccessor, getWorkflow, isCompleted, isStarted, setOutcome, setWorkflow, start |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Decision(Workflow workflow, String messageKey, Principal actor, Outcome defaultOutcome)
workflow
- the parent Workflow objectmessageKey
- the i18n message key that represents the message the
actor will seeactor
- the Principal (e.g., a WikiPrincipal, Role,
GroupPrincipal) who is required to select an appropriate
OutcomedefaultOutcome
- the Outcome that the user interface will recommend
as the default choiceMethod Detail |
---|
public final void addFact(Fact fact)
fact
- the new fact to addpublic void decide(Outcome outcome) throws WikiException
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
AbstractStep.getAvailableOutcomes()
, an IllegalArgumentException will be
thrown.
outcome
- the Outcome of the Decision
WikiException
- if the act of restarting the Workflow throws an
exceptionpublic Outcome execute() throws WikiException
Outcome.STEP_CONTINUE
if the current Outcome isn't a completion (which will be true if the
decide(Outcome)
method hasn't been executed yet. This method
will also add the Decision to the associated DecisionQueue.
execute
in interface Step
execute
in class AbstractStep
WikiException
- neverpublic final Principal getActor()
getActor
in interface Step
getActor
in class AbstractStep
public Outcome getDefaultOutcome()
AbstractStep.getAvailableOutcomes()
. This method is guaranteed
to return a non-null
Outcome.
public final List getFacts()
public final int getId()
public boolean isReassignable()
true
if the Decision can be reassigned to another
actor. This implementation always returns true
.
public final void reassign(Principal actor)
actor
- the actor to reassign the Decision topublic final void setId(int id)
id
- the identifier
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |