Class BpmnParse
java.lang.Object
org.xml.sax.helpers.DefaultHandler
org.camunda.bpm.engine.impl.util.xml.Parse
org.camunda.bpm.engine.impl.bpmn.parser.BpmnParse
- All Implemented Interfaces:
ContentHandler
,DTDHandler
,EntityResolver
,ErrorHandler
Specific parsing of one BPMN 2.0 XML file, created by the
BpmnParser
.
Instances of this class should not be reused and are also not threadsafe.- Author:
- Tom Baeyens, Bernd Ruecker, Joram Barrez, Christian Stettler, Frederik Heremans, Falko Menge, Esteban Robles, Daniel Meyer, Saeid Mirzaei, Nico Rehwaldt, Ronny Bräunlich, Christopher Zell, Deivarayan Azhagappan, Ingo Richtsmeier
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
protected static final String
protected static final String
static final Namespace
static final Namespace
static final Namespace
static final String
protected static final String
protected static final String
protected static final String
protected static final String
static final String
static final String
static final String
static final String
protected DeploymentEntity
The deployment to which the parsed process definitions will be added.protected static final String
A list of all element IDs.static final String
Mapping of found errors in BPMN 2.0 filestatic final String
protected Map<String,
Escalation> Mapping of found escalation elementsprotected ExpressionManager
protected static final String
protected static final String
protected static final String
protected static final String
protected Map<String,
XMLImporter> static final String
protected Map<String,
List<JobDeclaration<?, ?>>> Mapping from a process definition key to his containing list of job declarationsstatic final String
protected static final BpmnParseLogger
static final String
protected Map<String,
MessageDefinition> Mapping containing values stored during the first phase of parsing since other elements can reference these messages.static final String
static final Namespace
protected List<BpmnParseListener>
A map for storing the process references of participantsprotected static final String
protected static final String
protected static final String
protected List<ProcessDefinitionEntity>
The end result of the parsing: a list of process definition.static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
Deprecated.static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
Deprecated.static final String
static final String
static final String
protected static final String
protected Map<String,
TransitionImpl> A map for storing sequence flow based on their id during parsing.static final String
protected Map<String,
SignalDefinition> protected String
static final String
static final String
static final String
protected static final String
static final Namespace
Fields inherited from class org.camunda.bpm.engine.impl.util.xml.Parse
JAXP_ACCESS_EXTERNAL_SCHEMA, JAXP_ACCESS_EXTERNAL_SCHEMA_ALL, JAXP_ACCESS_EXTERNAL_SCHEMA_SYSTEM_PROPERTY, JAXP_SCHEMA_LANGUAGE, JAXP_SCHEMA_SOURCE, name, parser, rootElement, schemaResource, streamSource, W3C_XML_SCHEMA, warnings
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
activityAlreadyContainsJobDeclarationEventType
(List<EventSubscriptionJobDeclaration> jobDeclarationsForActivity, EventSubscriptionJobDeclaration jobDeclaration) Assumes that an activity has at most one declaration of a certain eventType.protected void
addErrorEventDefinition
(ErrorEventDefinition errorEventDefinition, ScopeImpl catchingScope) protected void
addEscalationEventDefinition
(ScopeImpl catchingScope, EscalationEventDefinition escalationEventDefinition, Element element, String escalationElementId) protected void
addEventSubscriptionDeclaration
(EventSubscriptionDeclaration subscription, ScopeImpl scope, Element element) protected void
addEventSubscriptionJobDeclaration
(EventSubscriptionJobDeclaration jobDeclaration, ActivityImpl activity, Element element) protected void
addJobDeclarationToProcessDefinition
(JobDeclaration<?, ?> jobDeclaration, ProcessDefinition processDefinition) protected void
addMessageJobDeclaration
(MessageJobDeclaration messageJobDeclaration, ActivityImpl activity, boolean exclusive) Adds the new message job declaration to existing declarations.protected void
addMessageJobDeclarationToActivity
(MessageJobDeclaration messageJobDeclaration, ActivityImpl activity) protected void
addTimeCycleWarning
(Element timeCycleElement, String type, String timerElementId) protected void
addTimerDeclaration
(ScopeImpl scope, TimerDeclarationImpl timerDeclaration) protected void
addTimerListenerDeclaration
(String listenerId, ScopeImpl scope, TimerDeclarationImpl timerDeclaration) protected void
addVariableDeclaration
(ScopeImpl scope, VariableDeclaration variableDeclaration) protected boolean
attributeValueEquals
(Element element, String attribute, String comparisonValue) protected boolean
checkActivityInputOutputSupported
(Element activityElement, ActivityImpl activity, IoMapping inputOutput) protected boolean
checkActivityOutputParameterSupported
(Element activityElement, ActivityImpl activity) protected void
createActivityOnScope
(Element activityElement, ScopeImpl scopeElement) Parses the generic information of an activity element (id, name, documentation, etc.), and creates a newActivityImpl
on the given scope element.protected Escalation
createEscalation
(String id, Element element) protected EscalationEventDefinition
createEscalationEventDefinitionForEscalationHandler
(Element escalationEventDefinitionElement, ActivityImpl escalationHandler, boolean cancelActivity, String parentElementId) protected ParameterValueProvider
createParameterValueProvider
(Object value, ExpressionManager expressionManager) deployment
(DeploymentEntity deployment) protected void
ensureNoExpressionInMessageStartEvent
(Element element, EventSubscriptionDeclaration messageStartEventSubscriptionDeclaration, String parentElementId) protected void
ensureNoIoMappingDefined
(Element element) execute()
protected boolean
exists
(MessageJobDeclaration msgJobdecl, String procDefKey, String activityId) Checks whether the message declaration already exists.filterCompensationHandlers
(List<Element> activityElements) filterIntermediateCatchEvents
(List<Element> activityElements) protected Escalation
findEscalationForEscalationEventDefinition
(Element escalationEventDefinition, String escalationElementId) Find the referenced escalation of the given escalation event definition.protected String
getAssignmentId
(String expression, String prefix) static String
getIdForMiBody
(String id) protected XMLImporter
getImporter
(String importType, Element theImport) Map<String,
List<JobDeclaration<?, ?>>> List<JobDeclaration<?,
?>> getJobDeclarationsByKey
(String processDefinitionKey) protected ActivityImpl
getMultiInstanceScope
(ActivityImpl activity) getProcessDefinition
(String processDefinitionKey) protected String
getStringValueFromAttributeOrElement
(String attributeName, String elementName, Element element, String ancestorElementId) protected boolean
hasConnector
(Element element) protected boolean
hasMultipleConditionalEventDefinitionsWithSameCondition
(EventSubscriptionDeclaration subscription, Collection<EventSubscriptionDeclaration> eventDefinitions) protected boolean
hasMultipleEventDefinitionsWithSameName
(EventSubscriptionDeclaration subscription, Collection<EventSubscriptionDeclaration> eventDefinitions, String eventType) protected boolean
hasMultipleMessageEventDefinitionsWithSameName
(EventSubscriptionDeclaration subscription, Collection<EventSubscriptionDeclaration> eventDefinitions) protected boolean
hasMultipleSignalEventDefinitionsWithSameName
(EventSubscriptionDeclaration subscription, Collection<EventSubscriptionDeclaration> eventDefinitions) protected boolean
isAsyncAfter
(Element element) protected boolean
isAsyncBefore
(Element element) protected boolean
isCompensationHandler
(Element activityElement) protected boolean
isExclusive
(Element element) protected boolean
isServiceTaskLike
(Element element) protected boolean
isStartable
(Element element) protected boolean
isValidEventNameForScope
(String eventName, Element listenerElement, String ancestorElementId) Check if the given event name is valid.void
parseActivities
(List<Element> activityElements, Element parentElement, ScopeImpl scopeElement) Parses the activities of a certain level in the process (process, subprocess or another scope).protected ActivityImpl
parseActivity
(Element activityElement, Element parentElement, ScopeImpl scopeElement) protected void
parseActivityInputOutput
(Element activityElement, ActivityImpl activity) protected void
parseAssociationOfCompensationBoundaryEvent
(Element associationElement, ActivityImpl sourceActivity, ActivityImpl targetActivity) protected void
parseAssociations
(Element scopeElement, ScopeImpl parentScope, Map<String, Element> compensationHandlers) protected void
parseAsynchronousContinuation
(Element element, ActivityImpl activity) Parse async continuation of the given element and create async jobs for the activity.protected void
parseAsynchronousContinuationForActivity
(Element activityElement, ActivityImpl activity) Parse async continuation of an activity and create async jobs for the activity.protected void
parseBinding
(Element callActivityElement, ActivityImpl activity, BaseCallableElement callableElement, String bindingAttributeName) parseBooleanAttribute
(String booleanText) parseBooleanAttribute
(String booleanText, boolean defaultValue) protected ActivityBehavior
parseBoundaryCancelEventDefinition
(Element cancelEventDefinition, ActivityImpl activity) protected void
parseBoundaryCompensateEventDefinition
(Element compensateEventDefinition, ActivityImpl activity) parseBoundaryConditionalEventDefinition
(Element element, boolean interrupting, ActivityImpl conditionalActivity) Parses the given element as conditional boundary event.void
parseBoundaryErrorEventDefinition
(Element errorEventDefinition, ActivityImpl boundaryEventActivity) protected void
parseBoundaryEscalationEventDefinition
(Element escalationEventDefinitionElement, boolean cancelActivity, ActivityImpl boundaryEventActivity) void
parseBoundaryEvents
(Element parentElement, ScopeImpl flowScope) Parses the boundary events of a certain 'level' (process, subprocess or other scope).void
parseBoundaryMessageEventDefinition
(Element element, boolean interrupting, ActivityImpl messageActivity) void
parseBoundarySignalEventDefinition
(Element element, boolean interrupting, ActivityImpl signalActivity) void
parseBoundaryTimerEventDefinition
(Element timerEventDefinition, boolean interrupting, ActivityImpl boundaryActivity) Parses a boundary timer event.void
parseBPMNDiagram
(Element bpmndiagramElement) void
parseBPMNEdge
(Element bpmnEdgeElement) void
parseBPMNPlane
(Element bpmnPlaneElement) void
parseBPMNShape
(Element bpmnShapeElement) parseBusinessRuleTask
(Element businessRuleTaskElement, ScopeImpl scope) Parses a businessRuleTask declaration.protected CallableElementParameter
parseCallableElementProvider
(Element parameterElement, String ancestorElementId) parseCallActivity
(Element callActivityElement, ScopeImpl scope, boolean isMultiInstance) Parses a call activity (currently only supporting calling subprocesses).parseCamundaErrorEventDefinitions
(ActivityImpl activity, Element scopeElement) void
Parses the collaboration definition defined within the 'definitions' root element and get all participants to lookup their process references during DI parsing.Parses the given String as a list of comma separated entries, where an entry can possibly be an expression that has comma's.protected void
parseCompensationEventSubprocess
(ActivityImpl startEventActivity, Element startEventElement, ActivityImpl scopeActivity, Element compensateEventDefinition) protected ActivityImpl
parseCompensationHandlerForCompensationBoundaryEvent
(ScopeImpl parentScope, ActivityImpl sourceActivity, String targetRef, Map<String, Element> compensationHandlers) protected void
parseCompensationHandlers
(ScopeImpl parentScope, Map<String, Element> compensationHandlers) protected ConditionalEventDefinition
parseConditionalEventDefinition
(Element element, ActivityImpl conditionalActivity) Parses the given element and returns an ConditionalEventDefinition object.parseConditionalStartEventForEventSubprocess
(Element element, ActivityImpl conditionalActivity, boolean interrupting) Parses the given element as conditional start event of an event subprocess.protected Condition
parseConditionExpression
(Element conditionExprElement, String ancestorElementId) protected DecisionResultMapper
parseDecisionResultMapper
(Element businessRuleTaskElement) protected void
void
protected void
parseDIBounds
(Element bpmnShapeElement, HasDIBounds target) protected ActivityImpl
parseDmnBusinessRuleTask
(Element businessRuleTaskElement, ScopeImpl scope) Parse a Business Rule Task which references a decision.static String
parseDocumentation
(List<String> docStrings) parseDocumentation
(Element element) parseDoubleAttribute
(Element element, String attributeName, String doubleText, boolean required) protected void
parseEmailServiceTask
(ActivityImpl activity, Element serviceTaskElement, List<FieldDeclaration> fieldDeclarations) void
parseEndEvents
(Element parentElement, ScopeImpl scope) Parses the end events of a certain level in the process (process, subprocess or another scope).void
protected void
parseErrorStartEventDefinition
(Element errorEventDefinition, ActivityImpl startEventActivity) protected void
parseEventBasedGateway
(Element eventBasedGwElement, Element parentElement, ScopeImpl scope) protected void
parseEventDefinitionForSubprocess
(EventSubscriptionDeclaration subscriptionDeclaration, ActivityImpl activity, Element element) parseExclusiveGateway
(Element exclusiveGwElement, ScopeImpl scope) Parses an exclusive gateway declaration.parseExecutionListener
(Element executionListenerElement, String ancestorElementId) Parses anExecutionListener
implementation for the given executionListener element.void
parseExecutionListenersOnScope
(Element scopeElement, ScopeImpl scope) Parses all execution-listeners on a scope.void
parseExecutionListenersOnTransition
(Element activitiElement, TransitionImpl activity) protected Expression
parseExpression
(Element parent, String name) protected FieldDeclaration
parseExpressionFieldDeclaration
(Element fieldDeclarationElement, Element serviceTaskElement, String fieldName) protected void
parseExternalServiceTask
(ActivityImpl activity, Element serviceTaskElement, Element camundaPropertiesElement) protected FieldDeclaration
parseFieldDeclaration
(Element serviceTaskElement, Element fieldDeclarationElement) parseFieldDeclarations
(Element element) protected FormDefinition
parseFormDefinition
(Element flowNodeElement) protected void
parseHumanPerformer
(Element taskElement, TaskDefinition taskDefinition) protected void
parseHumanPerformerResourceAssignment
(Element performerElement, TaskDefinition taskDefinition) protected void
Parses the rootElement importing structuresparseInclusiveGateway
(Element inclusiveGwElement, ScopeImpl scope) Parses an inclusive gateway declaration.protected void
parseInputParameter
(Element elementWithParameters, CallableElement callableElement) parseIntermediateCatchEvent
(Element intermediateEventElement, ScopeImpl scopeElement, ActivityImpl eventBasedGateway) protected void
parseIntermediateCatchEvents
(Element scopeElement, ScopeImpl parentScope, Map<String, Element> intermediateCatchEventElements) parseIntermediateConditionalEventDefinition
(Element element, ActivityImpl conditionalActivity) Parses the given element as intermediate conditional event.protected void
parseIntermediateLinkEventCatchBehavior
(Element intermediateEventElement, ActivityImpl activity, Element linkEventDefinitionElement) protected void
parseIntermediateMessageEventDefinition
(Element messageEventDefinition, ActivityImpl nestedActivity) protected void
parseIntermediateSignalEventDefinition
(Element element, ActivityImpl signalActivity) parseIntermediateThrowEvent
(Element intermediateEventElement, ScopeImpl scopeElement) protected void
parseIntermediateTimerEventDefinition
(Element timerEventDefinition, ActivityImpl timerActivity) protected void
parseLanes
(Element laneSetElement, LaneSet laneSet) protected void
parseLaneSets
(Element parentElement, ProcessDefinitionEntity processDefinition) parseManualTask
(Element manualTaskElement, ScopeImpl scope) Parses a manual task.protected EventSubscriptionDeclaration
parseMessageEventDefinition
(Element messageEventDefinition, String messageElementId) void
Parses the messages of the given definitions file.parseMultiInstanceLoopCharacteristics
(Element activityElement, ScopeImpl scope) Parses loopCharacteristics (standardLoop/Multi-instance) of an activity, if any is defined.protected void
parseOutputParameter
(Element callActivityElement, ActivityImpl activity, CallableElement callableElement) parseParallelGateway
(Element parallelGwElement, ScopeImpl scope) Parses a parallel gateway declaration.protected void
parsePotentialOwner
(Element taskElement, TaskDefinition taskDefinition) protected void
parsePotentialOwnerResourceAssignment
(Element performerElement, TaskDefinition taskDefinition) protected void
parsePotentialStarterResourceAssignment
(Element performerElement, ProcessDefinitionEntity processDefinition) protected ParameterValueProvider
parsePriority
(Element element, String priorityAttribute) parseProcess
(Element processElement) Parses one process (ie anything inside a <process> element).protected void
parseProcessDefinitionCustomExtensions
(Element scopeElement, ProcessDefinition definition) void
Parses all the process definitions defined within the 'definitions' root element.protected void
parseProcessDefinitionStartEvent
(ActivityImpl startEventActivity, Element startEventElement, Element parentElement, ScopeImpl scope) void
parseProperties
(Element element, ActivityImpl activity) Parses the properties of an element (if any) that can contain properties (processes, activities, etc.) Returns true if property subelemens are found.void
parseProperty
(Element propertyElement, ActivityImpl activity) Parses one property definition.void
parsePropertyCustomExtensions
(ActivityImpl activity, Element propertyElement, String propertyName, String propertyType) Parses the custom extensions for properties.parseReceiveTask
(Element receiveTaskElement, ScopeImpl scope) Parses a receive task.protected String
parseResultVariable
(Element element) protected void
Parses the 'definitions' root elementvoid
parseScope
(Element scopeElement, ScopeImpl parentScope) Parses a scope: a process, subprocess, etc.protected void
parseScopeStartEvent
(ActivityImpl startEventActivity, Element startEventElement, Element parentElement, ActivityImpl scopeActivity) parseScriptTask
(Element scriptTaskElement, ScopeImpl scope) Parses a scriptTask declaration.protected ScriptTaskActivityBehavior
parseScriptTaskElement
(Element scriptTaskElement) Returns aScriptTaskActivityBehavior
for the script task element corresponding to the script source or resource specified.parseSendTask
(Element sendTaskElement, ScopeImpl scope) Parses a sendTask declaration.void
parseSequenceFlow
(Element processElement, ScopeImpl scope, Map<String, Element> compensationHandlers) Parses all sequence flow of a scope.void
parseSequenceFlowConditionExpression
(Element seqFlowElement, TransitionImpl seqFlow) Parses a condition expression on a sequence flow.parseServiceTask
(Element serviceTaskElement, ScopeImpl scope) Parses a serviceTask declaration.void
parseServiceTaskLike
(ActivityImpl activity, String elementName, Element serviceTaskElement, Element camundaPropertiesElement, ScopeImpl scope) protected void
parseShellServiceTask
(ActivityImpl activity, Element serviceTaskElement, List<FieldDeclaration> fieldDeclarations) protected void
parseSignalCatchEventDefinition
(Element element, ActivityImpl signalActivity, boolean isStartEvent) protected EventSubscriptionDeclaration
parseSignalEventDefinition
(Element signalEventDefinitionElement, boolean isThrowing, String signalElementId) Parses the Signal Event Definition XML including payload definition.protected void
Parses the signals of the given definitions file.protected void
parseStartAuthorization
(Element scopeElement, ProcessDefinition definition) void
parseStartEvents
(Element parentElement, ScopeImpl scope) Parses the start events of a certain level in the process (process, subprocess or another scope).protected void
parseStartFormHandlers
(List<Element> startEventElements, ProcessDefinitionEntity processDefinition) protected FieldDeclaration
parseStringFieldDeclaration
(Element fieldDeclarationElement, Element serviceTaskElement, String fieldName) parseSubProcess
(Element subProcessElement, ScopeImpl scope) Parses a subprocess (formally known as an embedded subprocess): a subprocess defined within another process definition.Parses a task with no specific type (behaves as passthrough).parseTaskDefinition
(Element taskElement, String taskDefinitionKey, ActivityImpl activity, ProcessDefinitionEntity processDefinition) protected TaskListener
parseTaskListener
(Element taskListenerElement, String taskElementId) protected void
parseTaskListeners
(Element userTaskElement, ActivityImpl activity, TaskDefinition taskDefinition) protected void
parseTenantId
(Element callingActivityElement, ActivityImpl activity, BaseCallableElement callableElement, String attrName) protected CompensateEventDefinition
parseThrowCompensateEventDefinition
(Element compensateEventDefinitionElement, ScopeImpl scopeElement, String parentElementId) protected TaskListener
parseTimeoutTaskListener
(Element taskListenerElement, ActivityImpl timerActivity, TaskDefinition taskDefinition) protected TimerDeclarationImpl
parseTimer
(Element timerEventDefinition, ActivityImpl timerActivity, String jobHandlerType) protected void
parseTimerStartEventDefinition
(Element timerEventDefinition, ActivityImpl timerActivity, ProcessDefinitionEntity processDefinition) protected void
parseTimerStartEventDefinitionForEventSubprocess
(Element timerEventDefinition, ActivityImpl timerActivity, boolean interrupting) protected ParameterValueProvider
parseTopic
(Element element, String topicAttribute) protected ActivityImpl
parseTransaction
(Element transactionElement, ScopeImpl scope) parseUserTask
(Element userTaskElement, ScopeImpl scope) Parses a userTask declaration.protected void
parseUserTaskCustomExtensions
(Element taskElement, ActivityImpl activity, TaskDefinition taskDefinition) protected void
parseVersion
(Element callingActivityElement, ActivityImpl activity, BaseCallableElement callableElement, String bindingAttributeName, String versionAttributeName) protected void
parseVersionTag
(Element callingActivityElement, ActivityImpl activity, BaseCallableElement callableElement, String bindingAttributeName, String versionTagAttributeName) protected void
removeMessageJobDeclarationWithJobConfiguration
(ActivityImpl activity, String jobConfiguration) Removes a job declaration which belongs to the given activity and has the given job configuration.protected String
resolveName
(String name) protected void
selectInitial
(List<ActivityImpl> startEventActivities, ProcessDefinitionEntity processDefinition, Element parentElement) protected void
setActivityAsyncDelegates
(ActivityImpl activity) Sets the delegates for the activity, which will be called if the attribute asyncAfter or asyncBefore was changed.protected void
setErrorCodeVariableOnErrorEventDefinition
(Element errorEventDefinition, ErrorEventDefinition definition) Sets the value for "camunda:errorCodeVariable" on the passed definition if it's present.protected void
setErrorMessageVariableOnErrorEventDefinition
(Element errorEventDefinition, ErrorEventDefinition definition) Sets the value for "camunda:errorMessageVariable" on the passed definition if it's present.sourceInputStream
(InputStream inputStream) sourceResource
(String resource) sourceResource
(String resource, ClassLoader classLoader) sourceString
(String string) void
validateActivities
(List<ActivityImpl> activities) protected void
validateActivity
(ActivityImpl activity) protected void
validateAndSetHTTL
(Element processElement, ProcessDefinitionEntity processDefinition, boolean skipEnforceTtl) protected void
validateCatchCompensateEventDefinition
(Element compensateEventDefinitionElement, String parentElementId) void
validateExclusiveGateway
(ActivityImpl activity) protected void
validateFieldDeclarationsForEmail
(Element serviceTaskElement, List<FieldDeclaration> fieldDeclarations) protected void
validateFieldDeclarationsForShell
(Element serviceTaskElement, List<FieldDeclaration> fieldDeclarations) protected void
validateOutgoingFlows
(ActivityImpl activity) protected void
validateServiceTaskLike
(ActivityImpl activity, String elementName, Element serviceTaskElement) Methods inherited from class org.camunda.bpm.engine.impl.util.xml.Parse
addError, addError, addError, addError, addError, addWarning, addWarning, addWarning, getProblems, getRootElement, hasErrors, hasWarnings, logWarnings, resolveAccessExternalSchemaProperty, setSchemaResource, setStreamSource, throwExceptionForErrors
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.xml.sax.ContentHandler
declaration
-
Field Details
-
MULTI_INSTANCE_BODY_ID_SUFFIX
- See Also:
-
LOG
-
PROPERTYNAME_DOCUMENTATION
- See Also:
-
PROPERTYNAME_INITIATOR_VARIABLE_NAME
- See Also:
-
PROPERTYNAME_HAS_CONDITIONAL_EVENTS
- See Also:
-
PROPERTYNAME_CONDITION
- See Also:
-
PROPERTYNAME_CONDITION_TEXT
- See Also:
-
PROPERTYNAME_VARIABLE_DECLARATIONS
- See Also:
-
PROPERTYNAME_TIMER_DECLARATION
- See Also:
-
PROPERTYNAME_MESSAGE_JOB_DECLARATION
- See Also:
-
PROPERTYNAME_ISEXPANDED
- See Also:
-
PROPERTYNAME_START_TIMER
- See Also:
-
PROPERTYNAME_COMPENSATION_HANDLER_ID
- See Also:
-
PROPERTYNAME_IS_FOR_COMPENSATION
- See Also:
-
PROPERTYNAME_EVENT_SUBSCRIPTION_JOB_DECLARATION
- See Also:
-
PROPERTYNAME_THROWS_COMPENSATION
- See Also:
-
PROPERTYNAME_CONSUMES_COMPENSATION
- See Also:
-
PROPERTYNAME_JOB_PRIORITY
- See Also:
-
PROPERTYNAME_TASK_PRIORITY
- See Also:
-
PROPERTYNAME_EXTERNAL_TASK_TOPIC
- See Also:
-
PROPERTYNAME_CLASS
- See Also:
-
PROPERTYNAME_EXPRESSION
- See Also:
-
PROPERTYNAME_DELEGATE_EXPRESSION
- See Also:
-
PROPERTYNAME_VARIABLE_MAPPING_CLASS
- See Also:
-
PROPERTYNAME_VARIABLE_MAPPING_DELEGATE_EXPRESSION
- See Also:
-
PROPERTYNAME_RESOURCE
- See Also:
-
PROPERTYNAME_LANGUAGE
- See Also:
-
TYPE
- See Also:
-
TRUE
- See Also:
-
INTERRUPTING
- See Also:
-
CONDITIONAL_EVENT_DEFINITION
- See Also:
-
ESCALATION_EVENT_DEFINITION
- See Also:
-
COMPENSATE_EVENT_DEFINITION
- See Also:
-
TIMER_EVENT_DEFINITION
- See Also:
-
SIGNAL_EVENT_DEFINITION
- See Also:
-
MESSAGE_EVENT_DEFINITION
- See Also:
-
ERROR_EVENT_DEFINITION
- See Also:
-
CANCEL_EVENT_DEFINITION
- See Also:
-
LINK_EVENT_DEFINITION
- See Also:
-
CONDITION_EXPRESSION
- See Also:
-
CONDITION
- See Also:
-
VARIABLE_EVENTS
-
PROPERTYNAME_TYPE
Deprecated. -
PROPERTYNAME_ERROR_EVENT_DEFINITIONS
Deprecated. -
POTENTIAL_STARTER
- See Also:
-
CANDIDATE_STARTER_USERS_EXTENSION
- See Also:
-
CANDIDATE_STARTER_GROUPS_EXTENSION
- See Also:
-
ATTRIBUTEVALUE_T_FORMAL_EXPRESSION
- See Also:
-
PROPERTYNAME_IS_MULTI_INSTANCE
- See Also:
-
CAMUNDA_BPMN_EXTENSIONS_NS
-
XSI_NS
-
BPMN_DI_NS
-
OMG_DI_NS
-
BPMN_DC_NS
-
ALL
- See Also:
-
deployment
The deployment to which the parsed process definitions will be added. -
processDefinitions
The end result of the parsing: a list of process definition. -
errors
Mapping of found errors in BPMN 2.0 file -
escalations
Mapping of found escalation elements -
jobDeclarations
Mapping from a process definition key to his containing list of job declarations -
sequenceFlows
A map for storing sequence flow based on their id during parsing. -
elementIds
A list of all element IDs. This allows us to parse only what we actually support but still validate the references among elements we do not support. -
participantProcesses
A map for storing the process references of participants -
messages
Mapping containing values stored during the first phase of parsing since other elements can reference these messages. All the map's elements are defined outside the process definition(s), which means that this map doesn't need to be re-initialized for each new process definition. -
signals
-
expressionManager
-
parseListeners
-
importers
-
prefixs
-
targetNamespace
-
HUMAN_PERFORMER
- See Also:
-
POTENTIAL_OWNER
- See Also:
-
RESOURCE_ASSIGNMENT_EXPR
- See Also:
-
FORMAL_EXPRESSION
- See Also:
-
USER_PREFIX
- See Also:
-
GROUP_PREFIX
- See Also:
-
ASSIGNEE_EXTENSION
- See Also:
-
CANDIDATE_USERS_EXTENSION
- See Also:
-
CANDIDATE_GROUPS_EXTENSION
- See Also:
-
DUE_DATE_EXTENSION
- See Also:
-
FOLLOW_UP_DATE_EXTENSION
- See Also:
-
PRIORITY_EXTENSION
- See Also:
-
-
Constructor Details
-
BpmnParse
Constructor to be called by theBpmnParser
.
-
-
Method Details
-
deployment
-
execute
-
parseRootElement
protected void parseRootElement()Parses the 'definitions' root element -
collectElementIds
protected void collectElementIds() -
parseDefinitionsAttributes
protected void parseDefinitionsAttributes() -
resolveName
-
parseImports
protected void parseImports()Parses the rootElement importing structures -
getImporter
-
parseMessages
public void parseMessages()Parses the messages of the given definitions file. Messages are not contained within a process element, but they can be referenced from inner process elements. -
parseSignals
protected void parseSignals()Parses the signals of the given definitions file. Signals are not contained within a process element, but they can be referenced from inner process elements. -
parseErrors
public void parseErrors() -
parseEscalations
protected void parseEscalations() -
createEscalation
-
parseProcessDefinitions
public void parseProcessDefinitions()Parses all the process definitions defined within the 'definitions' root element. -
parseCollaboration
public void parseCollaboration()Parses the collaboration definition defined within the 'definitions' root element and get all participants to lookup their process references during DI parsing. -
parseProcess
Parses one process (ie anything inside a <process> element).- Parameters:
processElement
- The 'process' element.- Returns:
- The parsed version of the XML: a
ProcessDefinitionImpl
object.
-
validateAndSetHTTL
protected void validateAndSetHTTL(Element processElement, ProcessDefinitionEntity processDefinition, boolean skipEnforceTtl) -
parseLaneSets
-
parseLanes
-
parseScope
Parses a scope: a process, subprocess, etc. Note that a process definition is a scope on itself.- Parameters:
scopeElement
- The XML element defining the scopeparentScope
- The scope that contains the nested scope.
-
filterIntermediateCatchEvents
-
filterCompensationHandlers
-
parseIntermediateCatchEvents
-
parseProcessDefinitionCustomExtensions
protected void parseProcessDefinitionCustomExtensions(Element scopeElement, ProcessDefinition definition) -
parseStartAuthorization
-
parsePotentialStarterResourceAssignment
protected void parsePotentialStarterResourceAssignment(Element performerElement, ProcessDefinitionEntity processDefinition) -
parseAssociations
-
parseCompensationHandlerForCompensationBoundaryEvent
protected ActivityImpl parseCompensationHandlerForCompensationBoundaryEvent(ScopeImpl parentScope, ActivityImpl sourceActivity, String targetRef, Map<String, Element> compensationHandlers) -
parseAssociationOfCompensationBoundaryEvent
protected void parseAssociationOfCompensationBoundaryEvent(Element associationElement, ActivityImpl sourceActivity, ActivityImpl targetActivity) -
parseCompensationHandlers
-
parseStartEvents
Parses the start events of a certain level in the process (process, subprocess or another scope).- Parameters:
parentElement
- The 'parent' element that contains the start events (process, subprocess).scope
- TheScopeImpl
to which the start events must be added.
-
selectInitial
protected void selectInitial(List<ActivityImpl> startEventActivities, ProcessDefinitionEntity processDefinition, Element parentElement) -
parseProcessDefinitionStartEvent
protected void parseProcessDefinitionStartEvent(ActivityImpl startEventActivity, Element startEventElement, Element parentElement, ScopeImpl scope) -
parseStartFormHandlers
protected void parseStartFormHandlers(List<Element> startEventElements, ProcessDefinitionEntity processDefinition) -
parseScopeStartEvent
protected void parseScopeStartEvent(ActivityImpl startEventActivity, Element startEventElement, Element parentElement, ActivityImpl scopeActivity) -
parseCompensationEventSubprocess
protected void parseCompensationEventSubprocess(ActivityImpl startEventActivity, Element startEventElement, ActivityImpl scopeActivity, Element compensateEventDefinition) -
parseErrorStartEventDefinition
protected void parseErrorStartEventDefinition(Element errorEventDefinition, ActivityImpl startEventActivity) -
setErrorCodeVariableOnErrorEventDefinition
protected void setErrorCodeVariableOnErrorEventDefinition(Element errorEventDefinition, ErrorEventDefinition definition) Sets the value for "camunda:errorCodeVariable" on the passed definition if it's present.- Parameters:
errorEventDefinition
- the XML errorEventDefinition tagdefinition
- the errorEventDefintion that can get the errorCodeVariable value
-
setErrorMessageVariableOnErrorEventDefinition
protected void setErrorMessageVariableOnErrorEventDefinition(Element errorEventDefinition, ErrorEventDefinition definition) Sets the value for "camunda:errorMessageVariable" on the passed definition if it's present.- Parameters:
errorEventDefinition
- the XML errorEventDefinition tagdefinition
- the errorEventDefintion that can get the errorMessageVariable value
-
parseMessageEventDefinition
protected EventSubscriptionDeclaration parseMessageEventDefinition(Element messageEventDefinition, String messageElementId) -
addEventSubscriptionDeclaration
protected void addEventSubscriptionDeclaration(EventSubscriptionDeclaration subscription, ScopeImpl scope, Element element) -
hasMultipleMessageEventDefinitionsWithSameName
protected boolean hasMultipleMessageEventDefinitionsWithSameName(EventSubscriptionDeclaration subscription, Collection<EventSubscriptionDeclaration> eventDefinitions) -
hasMultipleSignalEventDefinitionsWithSameName
protected boolean hasMultipleSignalEventDefinitionsWithSameName(EventSubscriptionDeclaration subscription, Collection<EventSubscriptionDeclaration> eventDefinitions) -
hasMultipleConditionalEventDefinitionsWithSameCondition
protected boolean hasMultipleConditionalEventDefinitionsWithSameCondition(EventSubscriptionDeclaration subscription, Collection<EventSubscriptionDeclaration> eventDefinitions) -
hasMultipleEventDefinitionsWithSameName
protected boolean hasMultipleEventDefinitionsWithSameName(EventSubscriptionDeclaration subscription, Collection<EventSubscriptionDeclaration> eventDefinitions, String eventType) -
addEventSubscriptionJobDeclaration
protected void addEventSubscriptionJobDeclaration(EventSubscriptionJobDeclaration jobDeclaration, ActivityImpl activity, Element element) -
activityAlreadyContainsJobDeclarationEventType
protected boolean activityAlreadyContainsJobDeclarationEventType(List<EventSubscriptionJobDeclaration> jobDeclarationsForActivity, EventSubscriptionJobDeclaration jobDeclaration) Assumes that an activity has at most one declaration of a certain eventType. -
parseActivities
public void parseActivities(List<Element> activityElements, Element parentElement, ScopeImpl scopeElement) Parses the activities of a certain level in the process (process, subprocess or another scope).- Parameters:
activityElements
- The list of activities to be parsed. This list may be filtered before.parentElement
- The 'parent' element that contains the activities (process, subprocess).scopeElement
- TheScopeImpl
to which the activities must be added.
-
parseActivity
protected ActivityImpl parseActivity(Element activityElement, Element parentElement, ScopeImpl scopeElement) -
validateActivities
-
validateActivity
-
validateOutgoingFlows
-
validateExclusiveGateway
-
parseIntermediateCatchEvent
public ActivityImpl parseIntermediateCatchEvent(Element intermediateEventElement, ScopeImpl scopeElement, ActivityImpl eventBasedGateway) -
parseIntermediateLinkEventCatchBehavior
protected void parseIntermediateLinkEventCatchBehavior(Element intermediateEventElement, ActivityImpl activity, Element linkEventDefinitionElement) -
parseIntermediateMessageEventDefinition
protected void parseIntermediateMessageEventDefinition(Element messageEventDefinition, ActivityImpl nestedActivity) -
parseIntermediateThrowEvent
public ActivityImpl parseIntermediateThrowEvent(Element intermediateEventElement, ScopeImpl scopeElement) -
parseThrowCompensateEventDefinition
protected CompensateEventDefinition parseThrowCompensateEventDefinition(Element compensateEventDefinitionElement, ScopeImpl scopeElement, String parentElementId) -
validateCatchCompensateEventDefinition
-
parseBoundaryCompensateEventDefinition
protected void parseBoundaryCompensateEventDefinition(Element compensateEventDefinition, ActivityImpl activity) -
parseBoundaryCancelEventDefinition
protected ActivityBehavior parseBoundaryCancelEventDefinition(Element cancelEventDefinition, ActivityImpl activity) -
parseMultiInstanceLoopCharacteristics
Parses loopCharacteristics (standardLoop/Multi-instance) of an activity, if any is defined. -
getIdForMiBody
-
createActivityOnScope
Parses the generic information of an activity element (id, name, documentation, etc.), and creates a newActivityImpl
on the given scope element. -
setActivityAsyncDelegates
Sets the delegates for the activity, which will be called if the attribute asyncAfter or asyncBefore was changed.- Parameters:
activity
- the activity which gets the delegates
-
addMessageJobDeclaration
protected void addMessageJobDeclaration(MessageJobDeclaration messageJobDeclaration, ActivityImpl activity, boolean exclusive) Adds the new message job declaration to existing declarations. There will be executed an existing check before the adding is executed.- Parameters:
messageJobDeclaration
- the new message job declarationactivity
- the corresponding activityexclusive
- the flag which indicates if the async should be exclusive
-
exists
Checks whether the message declaration already exists.- Parameters:
msgJobdecl
- the message job declaration which is searchedprocDefKey
- the corresponding process definition keyactivityId
- the corresponding activity id- Returns:
- true if the message job declaration exists, false otherwise
-
removeMessageJobDeclarationWithJobConfiguration
protected void removeMessageJobDeclarationWithJobConfiguration(ActivityImpl activity, String jobConfiguration) Removes a job declaration which belongs to the given activity and has the given job configuration.- Parameters:
activity
- the activity of the job declarationjobConfiguration
- the job configuration of the declaration
-
parseDocumentation
-
parseDocumentation
-
isCompensationHandler
-
parseExclusiveGateway
Parses an exclusive gateway declaration. -
parseInclusiveGateway
Parses an inclusive gateway declaration. -
parseEventBasedGateway
public ActivityImpl parseEventBasedGateway(Element eventBasedGwElement, Element parentElement, ScopeImpl scope) -
parseParallelGateway
Parses a parallel gateway declaration. -
parseScriptTask
Parses a scriptTask declaration. -
parseScriptTaskElement
Returns aScriptTaskActivityBehavior
for the script task element corresponding to the script source or resource specified.- Parameters:
scriptTaskElement
- the script task element- Returns:
- the corresponding
ScriptTaskActivityBehavior
-
parseResultVariable
-
parseServiceTask
Parses a serviceTask declaration. -
parseServiceTaskLike
public void parseServiceTaskLike(ActivityImpl activity, String elementName, Element serviceTaskElement, Element camundaPropertiesElement, ScopeImpl scope) - Parameters:
elementName
-serviceTaskElement
- the element that contains the camunda service task definition (e.g. camunda:class attributes)camundaPropertiesElement
- the element that contains the camunda:properties extension elements that apply to this service task. Usually, but not always, this is the same as serviceTaskElementscope
-
-
validateServiceTaskLike
protected void validateServiceTaskLike(ActivityImpl activity, String elementName, Element serviceTaskElement) -
parseBusinessRuleTask
Parses a businessRuleTask declaration. -
parseDmnBusinessRuleTask
Parse a Business Rule Task which references a decision. -
parseDecisionResultMapper
-
parseAsynchronousContinuationForActivity
protected void parseAsynchronousContinuationForActivity(Element activityElement, ActivityImpl activity) Parse async continuation of an activity and create async jobs for the activity.
When the activity is marked as multi instance, then async jobs create instead for the multi instance body. When the wrapped activity has async characteristics in 'multiInstanceLoopCharacteristics' element, then async jobs create additionally for the wrapped activity. -
parseAsynchronousContinuation
Parse async continuation of the given element and create async jobs for the activity.- Parameters:
element
- with async characteristicsactivity
-
-
parsePriority
-
parseTopic
-
addMessageJobDeclarationToActivity
protected void addMessageJobDeclarationToActivity(MessageJobDeclaration messageJobDeclaration, ActivityImpl activity) -
addJobDeclarationToProcessDefinition
protected void addJobDeclarationToProcessDefinition(JobDeclaration<?, ?> jobDeclaration, ProcessDefinition processDefinition) -
parseSendTask
Parses a sendTask declaration. -
parseEmailServiceTask
protected void parseEmailServiceTask(ActivityImpl activity, Element serviceTaskElement, List<FieldDeclaration> fieldDeclarations) -
parseShellServiceTask
protected void parseShellServiceTask(ActivityImpl activity, Element serviceTaskElement, List<FieldDeclaration> fieldDeclarations) -
parseExternalServiceTask
protected void parseExternalServiceTask(ActivityImpl activity, Element serviceTaskElement, Element camundaPropertiesElement) -
validateFieldDeclarationsForEmail
protected void validateFieldDeclarationsForEmail(Element serviceTaskElement, List<FieldDeclaration> fieldDeclarations) -
validateFieldDeclarationsForShell
protected void validateFieldDeclarationsForShell(Element serviceTaskElement, List<FieldDeclaration> fieldDeclarations) -
parseFieldDeclarations
-
parseFieldDeclaration
protected FieldDeclaration parseFieldDeclaration(Element serviceTaskElement, Element fieldDeclarationElement) -
parseStringFieldDeclaration
protected FieldDeclaration parseStringFieldDeclaration(Element fieldDeclarationElement, Element serviceTaskElement, String fieldName) -
parseExpressionFieldDeclaration
protected FieldDeclaration parseExpressionFieldDeclaration(Element fieldDeclarationElement, Element serviceTaskElement, String fieldName) -
getStringValueFromAttributeOrElement
-
parseTask
Parses a task with no specific type (behaves as passthrough). -
parseManualTask
Parses a manual task. -
parseReceiveTask
Parses a receive task. -
parseUserTask
Parses a userTask declaration. -
parseTaskDefinition
public TaskDefinition parseTaskDefinition(Element taskElement, String taskDefinitionKey, ActivityImpl activity, ProcessDefinitionEntity processDefinition) -
parseFormDefinition
-
parseHumanPerformer
-
parsePotentialOwner
-
parseHumanPerformerResourceAssignment
protected void parseHumanPerformerResourceAssignment(Element performerElement, TaskDefinition taskDefinition) -
parsePotentialOwnerResourceAssignment
protected void parsePotentialOwnerResourceAssignment(Element performerElement, TaskDefinition taskDefinition) -
getAssignmentId
-
parseUserTaskCustomExtensions
protected void parseUserTaskCustomExtensions(Element taskElement, ActivityImpl activity, TaskDefinition taskDefinition) -
parseCommaSeparatedList
Parses the given String as a list of comma separated entries, where an entry can possibly be an expression that has comma's. If somebody is smart enough to write a regex for this, please let us know.- Returns:
- the entries of the comma separated list, trimmed.
-
parseTaskListeners
protected void parseTaskListeners(Element userTaskElement, ActivityImpl activity, TaskDefinition taskDefinition) -
parseTaskListener
-
parseTimeoutTaskListener
protected TaskListener parseTimeoutTaskListener(Element taskListenerElement, ActivityImpl timerActivity, TaskDefinition taskDefinition) -
parseEndEvents
Parses the end events of a certain level in the process (process, subprocess or another scope).- Parameters:
parentElement
- The 'parent' element that contains the end events (process, subprocess).scope
- TheScopeImpl
to which the end events must be added.
-
parseBoundaryEvents
Parses the boundary events of a certain 'level' (process, subprocess or other scope). Note that the boundary events are not parsed during the parsing of the bpmn activities, since the semantics are different (boundaryEvent needs to be added as nested activity to the reference activity on PVM level).- Parameters:
parentElement
- The 'parent' element that contains the activities (process, subprocess).flowScope
- TheScopeImpl
to which the activities must be added.
-
parseCamundaErrorEventDefinitions
public List<CamundaErrorEventDefinition> parseCamundaErrorEventDefinitions(ActivityImpl activity, Element scopeElement) -
getMultiInstanceScope
-
parseBoundaryTimerEventDefinition
public void parseBoundaryTimerEventDefinition(Element timerEventDefinition, boolean interrupting, ActivityImpl boundaryActivity) Parses a boundary timer event. The end-result will be that the given nested activity will get the appropriateActivityBehavior
.- Parameters:
timerEventDefinition
- The XML element corresponding with the timer event detailsinterrupting
- Indicates whether this timer is interrupting.boundaryActivity
- The activity which maps to the structure of the timer event on the boundary of another activity. Note that this is NOT the activity onto which the boundary event is attached, but a nested activity inside this activity, specifically created for this event.
-
parseBoundarySignalEventDefinition
public void parseBoundarySignalEventDefinition(Element element, boolean interrupting, ActivityImpl signalActivity) -
parseBoundaryMessageEventDefinition
public void parseBoundaryMessageEventDefinition(Element element, boolean interrupting, ActivityImpl messageActivity) -
parseTimerStartEventDefinition
protected void parseTimerStartEventDefinition(Element timerEventDefinition, ActivityImpl timerActivity, ProcessDefinitionEntity processDefinition) -
parseTimerStartEventDefinitionForEventSubprocess
protected void parseTimerStartEventDefinitionForEventSubprocess(Element timerEventDefinition, ActivityImpl timerActivity, boolean interrupting) -
parseEventDefinitionForSubprocess
protected void parseEventDefinitionForSubprocess(EventSubscriptionDeclaration subscriptionDeclaration, ActivityImpl activity, Element element) -
parseIntermediateSignalEventDefinition
-
parseSignalCatchEventDefinition
protected void parseSignalCatchEventDefinition(Element element, ActivityImpl signalActivity, boolean isStartEvent) -
parseSignalEventDefinition
protected EventSubscriptionDeclaration parseSignalEventDefinition(Element signalEventDefinitionElement, boolean isThrowing, String signalElementId) Parses the Signal Event Definition XML including payload definition.- Parameters:
signalEventDefinitionElement
- the Signal Event Definition elementisThrowing
- true if a Throwing signal event is being parsed- Returns:
-
parseIntermediateTimerEventDefinition
protected void parseIntermediateTimerEventDefinition(Element timerEventDefinition, ActivityImpl timerActivity) -
parseTimer
protected TimerDeclarationImpl parseTimer(Element timerEventDefinition, ActivityImpl timerActivity, String jobHandlerType) -
parseExpression
-
parseBoundaryErrorEventDefinition
public void parseBoundaryErrorEventDefinition(Element errorEventDefinition, ActivityImpl boundaryEventActivity) -
addErrorEventDefinition
protected void addErrorEventDefinition(ErrorEventDefinition errorEventDefinition, ScopeImpl catchingScope) -
parseBoundaryEscalationEventDefinition
protected void parseBoundaryEscalationEventDefinition(Element escalationEventDefinitionElement, boolean cancelActivity, ActivityImpl boundaryEventActivity) -
findEscalationForEscalationEventDefinition
protected Escalation findEscalationForEscalationEventDefinition(Element escalationEventDefinition, String escalationElementId) Find the referenced escalation of the given escalation event definition. Add errors if the referenced escalation not found.- Returns:
- referenced escalation or
null
, if referenced escalation not found
-
createEscalationEventDefinitionForEscalationHandler
protected EscalationEventDefinition createEscalationEventDefinitionForEscalationHandler(Element escalationEventDefinitionElement, ActivityImpl escalationHandler, boolean cancelActivity, String parentElementId) -
addEscalationEventDefinition
protected void addEscalationEventDefinition(ScopeImpl catchingScope, EscalationEventDefinition escalationEventDefinition, Element element, String escalationElementId) -
addTimerDeclaration
-
addTimerListenerDeclaration
protected void addTimerListenerDeclaration(String listenerId, ScopeImpl scope, TimerDeclarationImpl timerDeclaration) -
addVariableDeclaration
-
parseBoundaryConditionalEventDefinition
public BoundaryConditionalEventActivityBehavior parseBoundaryConditionalEventDefinition(Element element, boolean interrupting, ActivityImpl conditionalActivity) Parses the given element as conditional boundary event.- Parameters:
element
- the XML element which contains the conditional event informationinterrupting
- indicates if the event is interrupting or notconditionalActivity
- the conditional event activity- Returns:
- the boundary conditional event behavior which contains the condition
-
parseIntermediateConditionalEventDefinition
public ConditionalEventDefinition parseIntermediateConditionalEventDefinition(Element element, ActivityImpl conditionalActivity) Parses the given element as intermediate conditional event.- Parameters:
element
- the XML element which contains the conditional event informationconditionalActivity
- the conditional event activity- Returns:
- returns the conditional activity with the parsed information
-
parseConditionalStartEventForEventSubprocess
public ConditionalEventDefinition parseConditionalStartEventForEventSubprocess(Element element, ActivityImpl conditionalActivity, boolean interrupting) Parses the given element as conditional start event of an event subprocess.- Parameters:
element
- the XML element which contains the conditional event informationinterrupting
- indicates if the event is interrupting or notconditionalActivity
- the conditional event activity- Returns:
-
parseConditionalEventDefinition
protected ConditionalEventDefinition parseConditionalEventDefinition(Element element, ActivityImpl conditionalActivity) Parses the given element and returns an ConditionalEventDefinition object.- Parameters:
element
- the XML element which contains the conditional event informationconditionalActivity
- the conditional event activity- Returns:
- the conditional event definition which was parsed
-
parseSubProcess
Parses a subprocess (formally known as an embedded subprocess): a subprocess defined within another process definition.- Parameters:
subProcessElement
- The XML element corresponding with the subprocess definitionscope
- The current scope on which the subprocess is defined.
-
parseTransaction
-
parseCallActivity
public ActivityImpl parseCallActivity(Element callActivityElement, ScopeImpl scope, boolean isMultiInstance) Parses a call activity (currently only supporting calling subprocesses).- Parameters:
callActivityElement
- The XML element defining the call activityscope
- The current scope on which the call activity is defined.
-
parseBinding
protected void parseBinding(Element callActivityElement, ActivityImpl activity, BaseCallableElement callableElement, String bindingAttributeName) -
parseTenantId
protected void parseTenantId(Element callingActivityElement, ActivityImpl activity, BaseCallableElement callableElement, String attrName) -
parseVersion
protected void parseVersion(Element callingActivityElement, ActivityImpl activity, BaseCallableElement callableElement, String bindingAttributeName, String versionAttributeName) -
parseVersionTag
protected void parseVersionTag(Element callingActivityElement, ActivityImpl activity, BaseCallableElement callableElement, String bindingAttributeName, String versionTagAttributeName) -
parseInputParameter
-
parseOutputParameter
protected void parseOutputParameter(Element callActivityElement, ActivityImpl activity, CallableElement callableElement) -
attributeValueEquals
-
parseCallableElementProvider
protected CallableElementParameter parseCallableElementProvider(Element parameterElement, String ancestorElementId) -
parseProperties
Parses the properties of an element (if any) that can contain properties (processes, activities, etc.) Returns true if property subelemens are found.- Parameters:
element
- The element that can contain properties.activity
- The activity where the property declaration is done.
-
parseProperty
Parses one property definition.- Parameters:
propertyElement
- The 'property' element that defines how a property looks like and is handled.
-
parsePropertyCustomExtensions
public void parsePropertyCustomExtensions(ActivityImpl activity, Element propertyElement, String propertyName, String propertyType) Parses the custom extensions for properties.- Parameters:
activity
- The activity where the property declaration is done.propertyElement
- The 'property' element defining the property.propertyName
- The name of the property.propertyType
- The type of the property.
-
parseSequenceFlow
public void parseSequenceFlow(Element processElement, ScopeImpl scope, Map<String, Element> compensationHandlers) Parses all sequence flow of a scope.- Parameters:
processElement
- The 'process' element wherein the sequence flow are defined.scope
- The scope to which the sequence flow must be added.compensationHandlers
-
-
parseSequenceFlowConditionExpression
Parses a condition expression on a sequence flow.- Parameters:
seqFlowElement
- The 'sequenceFlow' element that can contain a condition.seqFlow
- The sequenceFlow object representation to which the condition must be added.
-
parseConditionExpression
-
parseExecutionListenersOnScope
Parses all execution-listeners on a scope.- Parameters:
scopeElement
- the XML element containing the scope definition.scope
- the scope to add the executionListeners to.
-
isValidEventNameForScope
protected boolean isValidEventNameForScope(String eventName, Element listenerElement, String ancestorElementId) Check if the given event name is valid. If not, an appropriate error is added. -
parseExecutionListenersOnTransition
-
parseExecutionListener
public ExecutionListener parseExecutionListener(Element executionListenerElement, String ancestorElementId) Parses anExecutionListener
implementation for the given executionListener element.- Parameters:
executionListenerElement
- the XML element containing the executionListener definition.
-
parseDiagramInterchangeElements
public void parseDiagramInterchangeElements() -
parseBPMNDiagram
-
parseBPMNPlane
-
parseBPMNShape
-
parseDIBounds
-
parseBPMNEdge
-
getProcessDefinitions
-
getProcessDefinition
-
name
-
sourceInputStream
- Overrides:
sourceInputStream
in classParse
-
sourceResource
- Overrides:
sourceResource
in classParse
-
sourceResource
- Overrides:
sourceResource
in classParse
-
sourceString
- Overrides:
sourceString
in classParse
-
sourceUrl
-
sourceUrl
-
parseBooleanAttribute
-
parseBooleanAttribute
-
parseDoubleAttribute
-
isStartable
-
isExclusive
-
isAsyncBefore
-
isAsyncAfter
-
isServiceTaskLike
-
hasConnector
-
getJobDeclarations
-
getJobDeclarationsByKey
-
parseActivityInputOutput
-
checkActivityInputOutputSupported
protected boolean checkActivityInputOutputSupported(Element activityElement, ActivityImpl activity, IoMapping inputOutput) -
checkActivityOutputParameterSupported
protected boolean checkActivityOutputParameterSupported(Element activityElement, ActivityImpl activity) -
ensureNoIoMappingDefined
-
createParameterValueProvider
protected ParameterValueProvider createParameterValueProvider(Object value, ExpressionManager expressionManager) -
addTimeCycleWarning
-
ensureNoExpressionInMessageStartEvent
protected void ensureNoExpressionInMessageStartEvent(Element element, EventSubscriptionDeclaration messageStartEventSubscriptionDeclaration, String parentElementId)
-
BpmnProperties.ERROR_EVENT_DEFINITIONS