public abstract class AbstractChoreographyCheck
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
protected static class |
AbstractChoreographyCheck.Direction
enum, that is used in methods, that act generically for predecessor and
successors, to indicate the interesting direction
|
Constructor and Description |
---|
AbstractChoreographyCheck(BPMNModel model) |
Modifier and Type | Method and Description |
---|---|
abstract java.util.Collection<EnforceabilityProblem> |
checkObject(ProcessObject object)
performs the checks necessary for a given object
|
java.util.Collection<EnforceabilityProblem> |
checkRealizability()
Checks the realizability of the choreography (no complete enforceability
check - each AbstractChoreographyCheck subclass will check only one aspect).
|
protected java.util.Collection<ProcessNode> |
choreographyActivitiesIn(java.util.Collection<ProcessNode> nodes) |
protected java.util.Collection<ProcessNode> |
directlyPrecedingChoreographyActivities(ProcessNode node) |
protected java.util.Collection<ProcessNode> |
directlySucceedingChoreographyActivities(ProcessNode node) |
protected java.util.Collection<ProcessNode> |
getFinalTasksWithoutParticipant(ProcessNode activity,
java.lang.String participant)
identifies the ChoreographyTasks in which the specified participant is not
involved and that are final for the specified activity (for ChoreographyTasks:
the task itself, for ChoreographySubProcesses: the ChoreographyTasks, that
can occur last in this SubProcess)
|
abstract java.util.Collection<java.lang.Class<? extends ProcessObject>> |
getRelevantClasses()
specifies, which types of ProcessObjects are of interest for this
ChoreographyCheck.
|
protected java.util.Collection<ProcessNode> |
neighbourChoreographyActivities(ProcessNode node,
AbstractChoreographyCheck.Direction direction) |
protected java.util.Collection<ProcessNode> |
neighbourNodes(ProcessNode node,
AbstractChoreographyCheck.Direction direction) |
protected java.util.Collection<ProcessNode> |
nextNeighbourChoreographyActivities(java.util.Collection<ProcessNode> active,
AbstractChoreographyCheck.Direction direction)
collects all following ChoreographyActities, skipping other nodes than
ChoreographyActivities and following LinkEvents.
|
protected java.util.Collection<ProcessNode> |
nodesWithoutSequenceFlowInDirection(ChoreographySubProcess subProcess,
AbstractChoreographyCheck.Direction direction) |
protected java.util.Collection<ProcessNode> |
nodesWithSequenceFlowOverBorder(ChoreographySubProcess subProcess,
AbstractChoreographyCheck.Direction direction)
Identifies the nodes whithin subProcess, that have incoming/outgoing
(according to direction) SequenceFlow from/to ProcessNodes, that are not
within subProcess.
|
protected boolean |
noticesCompletion(java.lang.String participant,
ProcessNode node)
tests, wheter a participant will know when a Choreography-Activity has been
finished, i.e. if the node is a ChoreographyTask, he is a participant of the
task or if the node is a ChoreographySubProcess, he is a participant of all
activities that can occur as last activities in this SubProcess.
|
protected java.util.Collection<ProcessNode> |
precedingChoreographyActivities(ProcessNode node)
finds all ChoreographyActivities, that may directly preceed the given node
in execution (ProcessNodes other then ChoreographyActivities are ignored).
|
void |
setModel(BPMNModel model) |
protected java.util.Collection<ProcessNode> |
succeedingChoreographyActivities(ProcessNode node)
finds all ChoreographyActivities, that may directly follow the given node
in execution (ProcessNodes other then ChoreographyActivities are ignored).
|
protected BPMNModel model
public AbstractChoreographyCheck(BPMNModel model)
public void setModel(BPMNModel model)
public abstract java.util.Collection<java.lang.Class<? extends ProcessObject>> getRelevantClasses()
public abstract java.util.Collection<EnforceabilityProblem> checkObject(ProcessObject object)
object
- a ProcessObject that should be checked. This can be any
ProcessObject. If the object is not of interest for this ChoreographyCheck,
it will report no problemspublic java.util.Collection<EnforceabilityProblem> checkRealizability()
protected boolean noticesCompletion(java.lang.String participant, ProcessNode node)
protected java.util.Collection<ProcessNode> getFinalTasksWithoutParticipant(ProcessNode activity, java.lang.String participant)
protected java.util.Collection<ProcessNode> nodesWithSequenceFlowOverBorder(ChoreographySubProcess subProcess, AbstractChoreographyCheck.Direction direction)
protected java.util.Collection<ProcessNode> nodesWithoutSequenceFlowInDirection(ChoreographySubProcess subProcess, AbstractChoreographyCheck.Direction direction)
protected java.util.Collection<ProcessNode> directlySucceedingChoreographyActivities(ProcessNode node)
protected java.util.Collection<ProcessNode> succeedingChoreographyActivities(ProcessNode node)
protected java.util.Collection<ProcessNode> directlyPrecedingChoreographyActivities(ProcessNode node)
protected java.util.Collection<ProcessNode> precedingChoreographyActivities(ProcessNode node)
protected java.util.Collection<ProcessNode> nextNeighbourChoreographyActivities(java.util.Collection<ProcessNode> active, AbstractChoreographyCheck.Direction direction)
protected java.util.Collection<ProcessNode> choreographyActivitiesIn(java.util.Collection<ProcessNode> nodes)
protected java.util.Collection<ProcessNode> neighbourNodes(ProcessNode node, AbstractChoreographyCheck.Direction direction)
protected java.util.Collection<ProcessNode> neighbourChoreographyActivities(ProcessNode node, AbstractChoreographyCheck.Direction direction)