in packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-api/src/main/java/org/kie/workbench/common/stunner/sw/SWDomainInitializer.java [127:563]
public void initialize() {
domainInitializer
// Definition Set initialization.
.initializeDefinitionSet(new SWDefinitionSet())
.initializeDefinitionsField("definitions")
.initializeDomainQualifier(new SWEditor() {
@Override
public Class<? extends Annotation> annotationType() {
return SWEditor.class;
}
})
// Element Factories
.initializeElementFactory(NodeFactory.class, CATEGORY_STATES)
.initializeElementFactory(EdgeFactory.class, CATEGORY_TRANSITIONS)
// Categories.
.initializeCategory(Workflow.class, CATEGORY_STATES)
.initializeCategory(EventRef.class, CATEGORY_EVENTS)
.initializeCategory(OnEvent.class, CATEGORY_EVENTS)
.initializeCategory(EventTimeout.class, CATEGORY_TIMEOUTS)
.initializeCategory(Start.class, CATEGORY_START)
.initializeCategory(End.class, CATEGORY_END)
.initializeCategory(ActionsContainer.class, CATEGORY_EVENTS)
.initializeCategory(CallFunctionAction.class, CATEGORY_ACTIONS)
.initializeCategory(CallSubflowAction.class, CATEGORY_ACTIONS)
.initializeCategory(Metadata.class, CATEGORY_STATES)
.initializeCategory(State.class, CATEGORY_STATES)
.initializeCategory(InjectState.class, CATEGORY_STATES)
.initializeCategory(SwitchState.class, CATEGORY_STATES)
.initializeCategory(EventState.class, CATEGORY_STATES)
.initializeCategory(OperationState.class, CATEGORY_STATES)
.initializeCategory(SleepState.class, CATEGORY_STATES)
.initializeCategory(ParallelState.class, CATEGORY_STATES)
.initializeCategory(ForEachState.class, CATEGORY_STATES)
.initializeCategory(CallbackState.class, CATEGORY_STATES)
.initializeCategory(Transition.class, CATEGORY_TRANSITIONS)
.initializeCategory(StartTransition.class, CATEGORY_TRANSITIONS)
.initializeCategory(ErrorTransition.class, CATEGORY_TRANSITIONS)
.initializeCategory(EventConditionTransition.class, CATEGORY_TRANSITIONS)
.initializeCategory(DataConditionTransition.class, CATEGORY_TRANSITIONS)
.initializeCategory(DefaultConditionTransition.class, CATEGORY_TRANSITIONS)
.initializeCategory(CompensationTransition.class, CATEGORY_TRANSITIONS)
.initializeCategory(ActionTransition.class, CATEGORY_TRANSITIONS)
// Labels.
.initializeLabels(Workflow.class, LABEL_WORKFLOW)
.initializeLabels(EventRef.class, LABEL_ROOT_NODE, LABEL_EVENT)
.initializeLabels(OnEvent.class, LABEL_ROOT_NODE, LABEL_ON_EVENTS)
.initializeLabels(EventTimeout.class, LABEL_ROOT_NODE, LABEL_TIMEOUT)
.initializeLabels(ActionsContainer.class, LABEL_ROOT_NODE, LABEL_ACTIONS)
.initializeLabels(CallFunctionAction.class, LABEL_ROOT_NODE, LABEL_ACTION)
.initializeLabels(CallSubflowAction.class, LABEL_ROOT_NODE, LABEL_ACTION)
.initializeLabels(Metadata.class, LABEL_ROOT_NODE, LABEL_METADATA)
.initializeLabels(Transition.class, LABEL_TRANSITION)
.initializeLabels(StartTransition.class, LABEL_TRANSITION, LABEL_TRANSITION_START)
.initializeLabels(ErrorTransition.class, LABEL_TRANSITION, LABEL_TRANSITION_ERROR)
.initializeLabels(EventConditionTransition.class, LABEL_TRANSITION, LABEL_TRANSITION_EVENT_CONDITION)
.initializeLabels(DataConditionTransition.class, LABEL_TRANSITION, LABEL_TRANSITION_DATA_CONDITION)
.initializeLabels(DefaultConditionTransition.class, LABEL_TRANSITION, LABEL_TRANSITION_DEFAULT_CONDITION)
.initializeLabels(CompensationTransition.class, LABEL_TRANSITION, LABEL_TRANSITION_COMPENSATION)
.initializeLabels(ActionTransition.class, LABEL_TRANSITION_ACTION)
.initializeLabels(Start.class, LABEL_ROOT_NODE, LABEL_START)
.initializeLabels(End.class, LABEL_ROOT_NODE, LABEL_END)
.initializeLabels(InjectState.class, LABEL_ROOT_NODE, LABEL_INJECT_STATE)
.initializeLabels(EventState.class, LABEL_ROOT_NODE, LABEL_EVENT_STATE)
.initializeLabels(OperationState.class, LABEL_ROOT_NODE, LABEL_OPERATION_STATE)
.initializeLabels(SwitchState.class, LABEL_ROOT_NODE, LABEL_SWITCH_STATE)
.initializeLabels(SleepState.class, LABEL_ROOT_NODE, LABEL_SLEEP_STATE)
.initializeLabels(ParallelState.class, LABEL_ROOT_NODE, LABEL_PARALLEL_STATE)
.initializeLabels(ForEachState.class, LABEL_ROOT_NODE, LABEL_FOREACH_STATE)
.initializeLabels(CallbackState.class, LABEL_ROOT_NODE, LABEL_CALLBACK_STATE)
// Occurrence Rules
.setOccurrences(LABEL_WORKFLOW, 0, 1)
.setOccurrences(LABEL_START, 0, 1)
.setOccurrences(LABEL_END, 0, 1)
.setOccurrences(LABEL_INJECT_STATE, 0, -1)
.setOccurrences(LABEL_EVENT_STATE, 0, -1)
.setOccurrences(LABEL_OPERATION_STATE, 0, -1)
.setOccurrences(LABEL_SWITCH_STATE, 0, -1)
.setOccurrences(LABEL_SLEEP_STATE, 0, -1)
.setOccurrences(LABEL_PARALLEL_STATE, 0, -1)
.setOccurrences(LABEL_FOREACH_STATE, 0, -1)
.setOccurrences(LABEL_CALLBACK_STATE, 0, -1)
// Docking Rules
.setDockingRule(State.class, LABEL_TIMEOUT)
// Containment Rules
.setContainmentRule(OnEvent.class, LABEL_EVENT)
.setContainmentRule(Workflow.class, LABEL_ROOT_NODE)
.setContainmentRule(SWDefinitionSet.class, LABEL_WORKFLOW)
.setContainmentRule(ActionsContainer.class, LABEL_ACTION)
// Connection Rules
.setConnectionRule(StartTransition.class,
// Start State
new String[]{LABEL_START, LABEL_INJECT_STATE},
new String[]{LABEL_START, LABEL_EVENT_STATE},
new String[]{LABEL_START, LABEL_OPERATION_STATE},
new String[]{LABEL_START, LABEL_SWITCH_STATE},
new String[]{LABEL_START, LABEL_SLEEP_STATE},
new String[]{LABEL_START, LABEL_PARALLEL_STATE},
new String[]{LABEL_START, LABEL_FOREACH_STATE},
new String[]{LABEL_START, LABEL_CALLBACK_STATE})
.setConnectionRule(Transition.class,
// Inject State
new String[]{LABEL_INJECT_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_CALLBACK_STATE},
// Event State
new String[]{LABEL_EVENT_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_CALLBACK_STATE},
// Operation State
new String[]{LABEL_OPERATION_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_CALLBACK_STATE},
// Sleep State
new String[]{LABEL_SLEEP_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_SLEEP_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_SLEEP_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_SLEEP_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_SLEEP_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_SLEEP_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_SLEEP_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_SLEEP_STATE, LABEL_CALLBACK_STATE},
// Parallel State
new String[]{LABEL_PARALLEL_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_CALLBACK_STATE},
// Foreach State
new String[]{LABEL_FOREACH_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_CALLBACK_STATE},
// Callback State
new String[]{LABEL_CALLBACK_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_CALLBACK_STATE})
.setConnectionRule(CompensationTransition.class,
// Inject State
new String[]{LABEL_INJECT_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_INJECT_STATE, LABEL_CALLBACK_STATE},
// Event State
new String[]{LABEL_EVENT_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_CALLBACK_STATE},
// Operation State
new String[]{LABEL_OPERATION_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_CALLBACK_STATE},
// Switch State
new String[]{LABEL_SWITCH_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_CALLBACK_STATE},
// Parallel State
new String[]{LABEL_PARALLEL_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_CALLBACK_STATE},
// Foreach State
new String[]{LABEL_FOREACH_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_CALLBACK_STATE},
// Callback State
new String[]{LABEL_CALLBACK_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_CALLBACK_STATE})
.setConnectionRule(ErrorTransition.class,
// Event State
new String[]{LABEL_EVENT_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_EVENT_STATE, LABEL_CALLBACK_STATE},
// Operation State
new String[]{LABEL_OPERATION_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_OPERATION_STATE, LABEL_CALLBACK_STATE},
// Switch State
new String[]{LABEL_SWITCH_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_CALLBACK_STATE},
// Parallel State
new String[]{LABEL_PARALLEL_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_PARALLEL_STATE, LABEL_CALLBACK_STATE},
// Foreach State
new String[]{LABEL_FOREACH_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_FOREACH_STATE, LABEL_CALLBACK_STATE},
// Callback State
new String[]{LABEL_CALLBACK_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_CALLBACK_STATE, LABEL_CALLBACK_STATE})
.setConnectionRule(DataConditionTransition.class,
// Switch State
new String[]{LABEL_SWITCH_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_CALLBACK_STATE})
.setConnectionRule(DefaultConditionTransition.class,
// Switch State
new String[]{LABEL_SWITCH_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_CALLBACK_STATE})
.setConnectionRule(EventConditionTransition.class,
// Switch State
new String[]{LABEL_SWITCH_STATE, LABEL_INJECT_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_EVENT_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_OPERATION_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_SWITCH_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_SLEEP_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_PARALLEL_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_FOREACH_STATE},
new String[]{LABEL_SWITCH_STATE, LABEL_CALLBACK_STATE})
.setConnectionRule(ActionTransition.class, new String[]{LABEL_EVENT, LABEL_ACTION})
// Edge Occurrence Rules
// Event
.setEdgeOccurrences(ActionTransition.class, LABEL_EVENT, true, 0, 0)
.setEdgeOccurrences(ActionTransition.class, LABEL_EVENT, false, 0, -1)
// Action
.setEdgeOccurrences(ActionTransition.class, LABEL_ACTION, true, 0, -1)
.setEdgeOccurrences(ActionTransition.class, LABEL_ACTION, false, 0, 0)
// Start State
.setEdgeOccurrences(StartTransition.class, LABEL_START, true, 0, 0)
.setEdgeOccurrences(StartTransition.class, LABEL_START, false, 0, 1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_START, true, 0, 0)
.setEdgeOccurrences(CompensationTransition.class, LABEL_START, false, 0, 0)
.setEdgeOccurrences(DataConditionTransition.class, LABEL_START, true, 0, 0)
.setEdgeOccurrences(DataConditionTransition.class, LABEL_START, false, 0, 0)
.setEdgeOccurrences(DefaultConditionTransition.class, LABEL_START, true, 0, 0)
.setEdgeOccurrences(DefaultConditionTransition.class, LABEL_START, false, 0, 0)
.setEdgeOccurrences(ErrorTransition.class, LABEL_START, true, 0, 0)
.setEdgeOccurrences(ErrorTransition.class, LABEL_START, false, 0, 0)
.setEdgeOccurrences(EventConditionTransition.class, LABEL_START, true, 0, 0)
.setEdgeOccurrences(EventConditionTransition.class, LABEL_START, false, 0, 0)
.setEdgeOccurrences(Transition.class, LABEL_START, true, 0, 0)
.setEdgeOccurrences(Transition.class, LABEL_START, false, 0, 0)
.setEdgeOccurrences(ActionTransition.class, LABEL_START, true, 0, 0)
.setEdgeOccurrences(ActionTransition.class, LABEL_START, false, 0, 0)
// End State
.setEdgeOccurrences(CompensationTransition.class, LABEL_END, true, 0, 0)
.setEdgeOccurrences(CompensationTransition.class, LABEL_END, false, 0, 0)
.setEdgeOccurrences(DataConditionTransition.class, LABEL_END, false, 0, 0)
.setEdgeOccurrences(ErrorTransition.class, LABEL_END, false, 0, 0)
.setEdgeOccurrences(EventConditionTransition.class, LABEL_END, false, 0, 0)
.setEdgeOccurrences(Transition.class, LABEL_END, false, 0, 0)
.setEdgeOccurrences(ActionTransition.class, LABEL_END, false, 0, 0)
// Inject State
.setEdgeOccurrences(Transition.class, LABEL_INJECT_STATE, true, 0, -1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_INJECT_STATE, true, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_INJECT_STATE, true, 0, -1)
.setEdgeOccurrences(EventConditionTransition.class, LABEL_INJECT_STATE, true, 0, -1)
.setEdgeOccurrences(DefaultConditionTransition.class, LABEL_INJECT_STATE, true, 0, -1)
.setEdgeOccurrences(DataConditionTransition.class, LABEL_INJECT_STATE, true, 0, -1)
.setEdgeOccurrences(Transition.class, LABEL_INJECT_STATE, false, 0, 1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_INJECT_STATE, false, 0, 1)
// Event State
.setEdgeOccurrences(Transition.class, LABEL_EVENT_STATE, true, 0, -1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_EVENT_STATE, true, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_EVENT_STATE, true, 0, -1)
.setEdgeOccurrences(EventConditionTransition.class, LABEL_EVENT_STATE, true, 0, -1)
.setEdgeOccurrences(DefaultConditionTransition.class, LABEL_EVENT_STATE, true, 0, -1)
.setEdgeOccurrences(DataConditionTransition.class, LABEL_EVENT_STATE, true, 0, -1)
.setEdgeOccurrences(Transition.class, LABEL_EVENT_STATE, false, 0, 1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_EVENT_STATE, false, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_EVENT_STATE, false, 0, 1)
// Operation State
.setEdgeOccurrences(Transition.class, LABEL_OPERATION_STATE, true, 0, -1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_OPERATION_STATE, true, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_OPERATION_STATE, true, 0, -1)
.setEdgeOccurrences(EventConditionTransition.class, LABEL_OPERATION_STATE, true, 0, -1)
.setEdgeOccurrences(DefaultConditionTransition.class, LABEL_OPERATION_STATE, true, 0, -1)
.setEdgeOccurrences(DataConditionTransition.class, LABEL_OPERATION_STATE, true, 0, -1)
.setEdgeOccurrences(Transition.class, LABEL_OPERATION_STATE, false, 0, 1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_OPERATION_STATE, false, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_OPERATION_STATE, false, 0, 1)
// Switch State
.setEdgeOccurrences(Transition.class, LABEL_SWITCH_STATE, true, 0, -1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_SWITCH_STATE, true, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_SWITCH_STATE, true, 0, -1)
.setEdgeOccurrences(EventConditionTransition.class, LABEL_SWITCH_STATE, true, 0, -1)
.setEdgeOccurrences(DefaultConditionTransition.class, LABEL_SWITCH_STATE, true, 0, -1)
.setEdgeOccurrences(DataConditionTransition.class, LABEL_SWITCH_STATE, true, 0, -1)
.setEdgeOccurrences(DefaultConditionTransition.class, LABEL_SWITCH_STATE, false, 1, 1)
.setEdgeOccurrences(DataConditionTransition.class, LABEL_SWITCH_STATE, false, 0, -1)
.setEdgeOccurrences(EventConditionTransition.class, LABEL_SWITCH_STATE, false, 0, -1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_SWITCH_STATE, false, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_SWITCH_STATE, false, 0, 1)
// Sleep State
.setEdgeOccurrences(Transition.class, LABEL_SLEEP_STATE, true, 0, -1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_SLEEP_STATE, true, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_SLEEP_STATE, true, 0, -1)
.setEdgeOccurrences(EventConditionTransition.class, LABEL_SLEEP_STATE, true, 0, -1)
.setEdgeOccurrences(DefaultConditionTransition.class, LABEL_SLEEP_STATE, true, 0, -1)
.setEdgeOccurrences(DataConditionTransition.class, LABEL_SLEEP_STATE, true, 0, -1)
.setEdgeOccurrences(Transition.class, LABEL_SLEEP_STATE, false, 0, 1)
// Parallel State
.setEdgeOccurrences(Transition.class, LABEL_PARALLEL_STATE, true, 0, -1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_PARALLEL_STATE, true, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_PARALLEL_STATE, true, 0, -1)
.setEdgeOccurrences(EventConditionTransition.class, LABEL_PARALLEL_STATE, true, 0, -1)
.setEdgeOccurrences(DefaultConditionTransition.class, LABEL_PARALLEL_STATE, true, 0, -1)
.setEdgeOccurrences(DataConditionTransition.class, LABEL_PARALLEL_STATE, true, 0, -1)
.setEdgeOccurrences(Transition.class, LABEL_PARALLEL_STATE, false, 0, 1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_PARALLEL_STATE, false, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_PARALLEL_STATE, false, 0, 1)
// Foreach State
.setEdgeOccurrences(Transition.class, LABEL_FOREACH_STATE, true, 0, -1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_FOREACH_STATE, true, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_FOREACH_STATE, true, 0, -1)
.setEdgeOccurrences(EventConditionTransition.class, LABEL_FOREACH_STATE, true, 0, -1)
.setEdgeOccurrences(DefaultConditionTransition.class, LABEL_FOREACH_STATE, true, 0, -1)
.setEdgeOccurrences(DataConditionTransition.class, LABEL_FOREACH_STATE, true, 0, -1)
.setEdgeOccurrences(Transition.class, LABEL_FOREACH_STATE, false, 0, 1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_FOREACH_STATE, false, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_FOREACH_STATE, false, 0, 1)
// Callback State
.setEdgeOccurrences(Transition.class, LABEL_CALLBACK_STATE, true, 0, -1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_CALLBACK_STATE, true, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_CALLBACK_STATE, true, 0, -1)
.setEdgeOccurrences(EventConditionTransition.class, LABEL_CALLBACK_STATE, true, 0, -1)
.setEdgeOccurrences(DefaultConditionTransition.class, LABEL_CALLBACK_STATE, true, 0, -1)
.setEdgeOccurrences(DataConditionTransition.class, LABEL_CALLBACK_STATE, true, 0, -1)
.setEdgeOccurrences(Transition.class, LABEL_CALLBACK_STATE, false, 0, 1)
.setEdgeOccurrences(ErrorTransition.class, LABEL_CALLBACK_STATE, false, 0, -1)
.setEdgeOccurrences(CompensationTransition.class, LABEL_CALLBACK_STATE, false, 0, 1)
.initializeRules();
initDefinitions();
}