Class BpmnParse

  • All Implemented Interfaces:
    org.activiti.bpmn.constants.BpmnXMLConstants

    public class BpmnParse
    extends java.lang.Object
    implements org.activiti.bpmn.constants.BpmnXMLConstants
    Specific parsing of one BPMN 2.0 XML file, created by the BpmnParser.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected ActivityBehaviorFactory activityBehaviorFactory  
      protected org.activiti.bpmn.model.BpmnModel bpmnModel  
      protected BpmnParseHandlers bpmnParserHandlers  
      protected org.activiti.bpmn.model.FlowElement currentFlowElement  
      protected org.activiti.bpmn.model.Process currentProcess  
      protected ProcessDefinitionEntity currentProcessDefinition  
      protected java.util.LinkedList<org.activiti.bpmn.model.SubProcess> currentSubprocessStack  
      protected DeploymentEntity deployment
      The deployment to which the parsed process definitions will be added.
      protected ListenerFactory listenerFactory  
      protected static org.slf4j.Logger LOGGER  
      protected java.lang.String name  
      protected java.util.Map<java.lang.String,​java.lang.String> prefixs
      Mapping containing values stored during the first phase of parsing since other elements can reference these messages.
      protected java.util.List<ProcessDefinitionEntity> processDefinitions
      The end result of the parsing: a list of process definition.
      static java.lang.String PROPERTYNAME_COMPENSATION_HANDLER_ID  
      static java.lang.String PROPERTYNAME_CONDITION  
      static java.lang.String PROPERTYNAME_CONDITION_TEXT  
      static java.lang.String PROPERTYNAME_ERROR_EVENT_DEFINITIONS  
      static java.lang.String PROPERTYNAME_EVENT_SUBSCRIPTION_DECLARATION  
      static java.lang.String PROPERTYNAME_INITIAL  
      static java.lang.String PROPERTYNAME_INITIATOR_VARIABLE_NAME  
      static java.lang.String PROPERTYNAME_IS_FOR_COMPENSATION  
      static java.lang.String PROPERTYNAME_ISEXPANDED  
      static java.lang.String PROPERTYNAME_START_TIMER  
      static java.lang.String PROPERTYNAME_TIMER_DECLARATION  
      protected java.util.Map<java.lang.String,​org.activiti.bpmn.model.SequenceFlow> sequenceFlows
      A map for storing sequence flow based on their id during parsing.
      protected java.lang.String sourceSystemId  
      protected StreamSource streamSource  
      protected java.lang.String targetNamespace  
      protected boolean validateProcess  
      protected boolean validateSchema  
      • Fields inherited from interface org.activiti.bpmn.constants.BpmnXMLConstants

        ACTIVITI_EXTENSIONS_NAMESPACE, ACTIVITI_EXTENSIONS_PREFIX, ALFRESCO_TYPE, ATTRIBUTE_ACTIVITY_ASYNCHRONOUS, ATTRIBUTE_ACTIVITY_EXCLUSIVE, ATTRIBUTE_ACTIVITY_ISFORCOMPENSATION, ATTRIBUTE_ASSOCIATION_DIRECTION, ATTRIBUTE_BOUNDARY_ATTACHEDTOREF, ATTRIBUTE_BOUNDARY_CANCELACTIVITY, ATTRIBUTE_CALENDAR_NAME, ATTRIBUTE_CALL_ACTIVITY_BUSINESS_KEY, ATTRIBUTE_CALL_ACTIVITY_CALLEDELEMENT, ATTRIBUTE_CALL_ACTIVITY_INHERIT_BUSINESS_KEY, ATTRIBUTE_CALL_ACTIVITY_INHERITVARIABLES, ATTRIBUTE_CANCEL_REMAINING_INSTANCES, ATTRIBUTE_COMPENSATE_ACTIVITYREF, ATTRIBUTE_COMPENSATE_WAITFORCOMPLETION, ATTRIBUTE_DATA_ID, ATTRIBUTE_DATA_ITEM_REF, ATTRIBUTE_DATA_NAME, ATTRIBUTE_DATA_STORE_REF, ATTRIBUTE_DEFAULT, ATTRIBUTE_DI_BPMNELEMENT, ATTRIBUTE_DI_HEIGHT, ATTRIBUTE_DI_IS_EXPANDED, ATTRIBUTE_DI_WIDTH, ATTRIBUTE_DI_X, ATTRIBUTE_DI_Y, ATTRIBUTE_END_DATE, ATTRIBUTE_ERROR_CODE, ATTRIBUTE_ERROR_REF, ATTRIBUTE_EVENT_START_INITIATOR, ATTRIBUTE_EVENT_START_INTERRUPTING, ATTRIBUTE_FIELD_EXPRESSION, ATTRIBUTE_FIELD_NAME, ATTRIBUTE_FIELD_STRING, ATTRIBUTE_FLOW_SKIP_EXPRESSION, ATTRIBUTE_FLOW_SOURCE_REF, ATTRIBUTE_FLOW_TARGET_REF, ATTRIBUTE_FORM_DATEPATTERN, ATTRIBUTE_FORM_DEFAULT, ATTRIBUTE_FORM_EXPRESSION, ATTRIBUTE_FORM_FORMKEY, ATTRIBUTE_FORM_ID, ATTRIBUTE_FORM_NAME, ATTRIBUTE_FORM_READABLE, ATTRIBUTE_FORM_REQUIRED, ATTRIBUTE_FORM_TYPE, ATTRIBUTE_FORM_VARIABLE, ATTRIBUTE_FORM_WRITABLE, ATTRIBUTE_ID, ATTRIBUTE_IMPLEMENTATION_REF, ATTRIBUTE_IMPORT_TYPE, ATTRIBUTE_IOPARAMETER_SOURCE, ATTRIBUTE_IOPARAMETER_SOURCE_EXPRESSION, ATTRIBUTE_IOPARAMETER_TARGET, ATTRIBUTE_ITEM_KIND, ATTRIBUTE_ITEM_REF, ATTRIBUTE_ITEM_SUBJECT_REF, ATTRIBUTE_LISTENER_CLASS, ATTRIBUTE_LISTENER_CUSTOM_PROPERTIES_RESOLVER_CLASS, ATTRIBUTE_LISTENER_CUSTOM_PROPERTIES_RESOLVER_DELEGATEEXPRESSION, ATTRIBUTE_LISTENER_CUSTOM_PROPERTIES_RESOLVER_EXPRESSION, ATTRIBUTE_LISTENER_DELEGATEEXPRESSION, ATTRIBUTE_LISTENER_ENTITY_TYPE, ATTRIBUTE_LISTENER_EVENT, ATTRIBUTE_LISTENER_EVENTS, ATTRIBUTE_LISTENER_EXPRESSION, ATTRIBUTE_LISTENER_ON_TRANSACTION, ATTRIBUTE_LISTENER_THROW_ERROR_EVENT_CODE, ATTRIBUTE_LISTENER_THROW_EVENT_TYPE, ATTRIBUTE_LISTENER_THROW_EVENT_TYPE_ERROR, ATTRIBUTE_LISTENER_THROW_EVENT_TYPE_GLOBAL_SIGNAL, ATTRIBUTE_LISTENER_THROW_EVENT_TYPE_MESSAGE, ATTRIBUTE_LISTENER_THROW_EVENT_TYPE_SIGNAL, ATTRIBUTE_LISTENER_THROW_MESSAGE_EVENT_NAME, ATTRIBUTE_LISTENER_THROW_SIGNAL_EVENT_NAME, ATTRIBUTE_LOCATION, ATTRIBUTE_MESSAGE_CORRELATION_KEY, ATTRIBUTE_MESSAGE_EXPRESSION, ATTRIBUTE_MESSAGE_REF, ATTRIBUTE_MULTIINSTANCE_COLLECTION, ATTRIBUTE_MULTIINSTANCE_INDEX_VARIABLE, ATTRIBUTE_MULTIINSTANCE_SEQUENTIAL, ATTRIBUTE_MULTIINSTANCE_VARIABLE, ATTRIBUTE_NAME, ATTRIBUTE_NAMESPACE, ATTRIBUTE_ORDERING, ATTRIBUTE_PROCESS_CANDIDATE_GROUPS, ATTRIBUTE_PROCESS_CANDIDATE_USERS, ATTRIBUTE_PROCESS_EXECUTABLE, ATTRIBUTE_PROCESS_REF, ATTRIBUTE_SCOPE, ATTRIBUTE_SIGNAL_EXPRESSION, ATTRIBUTE_SIGNAL_REF, ATTRIBUTE_STRUCTURE_REF, ATTRIBUTE_TASK_IMPLEMENTATION, ATTRIBUTE_TASK_OPERATION_REF, ATTRIBUTE_TASK_RULE_CLASS, ATTRIBUTE_TASK_RULE_EXCLUDE, ATTRIBUTE_TASK_RULE_RESULT_VARIABLE, ATTRIBUTE_TASK_RULE_RULES, ATTRIBUTE_TASK_RULE_VARIABLES_INPUT, ATTRIBUTE_TASK_SCRIPT_AUTO_STORE_VARIABLE, ATTRIBUTE_TASK_SCRIPT_FORMAT, ATTRIBUTE_TASK_SCRIPT_RESULTVARIABLE, ATTRIBUTE_TASK_SCRIPT_TEXT, ATTRIBUTE_TASK_SERVICE_CLASS, ATTRIBUTE_TASK_SERVICE_DELEGATEEXPRESSION, ATTRIBUTE_TASK_SERVICE_EXPRESSION, ATTRIBUTE_TASK_SERVICE_EXTENSIONID, ATTRIBUTE_TASK_SERVICE_RESULTVARIABLE, ATTRIBUTE_TASK_SERVICE_SKIP_EXPRESSION, ATTRIBUTE_TASK_USER_ASSIGNEE, ATTRIBUTE_TASK_USER_BUSINESS_CALENDAR_NAME, ATTRIBUTE_TASK_USER_CANDIDATEGROUPS, ATTRIBUTE_TASK_USER_CANDIDATEUSERS, ATTRIBUTE_TASK_USER_CATEGORY, ATTRIBUTE_TASK_USER_DUEDATE, ATTRIBUTE_TASK_USER_OWNER, ATTRIBUTE_TASK_USER_PRIORITY, ATTRIBUTE_TASK_USER_SKIP_EXPRESSION, ATTRIBUTE_TERMINATE_ALL, ATTRIBUTE_TERMINATE_MULTI_INSTANCE, ATTRIBUTE_TEXTFORMAT, ATTRIBUTE_TIMER_CYCLE, ATTRIBUTE_TIMER_DATE, ATTRIBUTE_TIMER_DURATION, ATTRIBUTE_TRIGGERED_BY, ATTRIBUTE_TYPE, ATTRIBUTE_VALUE_FALSE, ATTRIBUTE_VALUE_TRUE, BPMN2_NAMESPACE, BPMN2_PREFIX, BPMNDI_NAMESPACE, BPMNDI_PREFIX, ELEMENT_ADHOC_SUBPROCESS, ELEMENT_ASSIGNMENT, ELEMENT_ASSOCIATION, ELEMENT_CALL_ACTIVITY, ELEMENT_CALL_ACTIVITY_IN_PARAMETERS, ELEMENT_CALL_ACTIVITY_OUT_PARAMETERS, ELEMENT_COLLABORATION, ELEMENT_COMPLETION_CONDITION, ELEMENT_CUSTOM_RESOURCE, ELEMENT_DATA_INPUT, ELEMENT_DATA_INPUT_REFS, ELEMENT_DATA_OBJECT, ELEMENT_DATA_OUTPUT, ELEMENT_DATA_OUTPUT_REFS, ELEMENT_DATA_STATE, ELEMENT_DATA_STORE, ELEMENT_DATA_STORE_REFERENCE, ELEMENT_DATA_VALUE, ELEMENT_DEFINITIONS, ELEMENT_DI_BOUNDS, ELEMENT_DI_DIAGRAM, ELEMENT_DI_EDGE, ELEMENT_DI_LABEL, ELEMENT_DI_PLANE, ELEMENT_DI_SHAPE, ELEMENT_DI_WAYPOINT, ELEMENT_DOCUMENTATION, ELEMENT_ERROR, ELEMENT_EVENT_BOUNDARY, ELEMENT_EVENT_CANCELDEFINITION, ELEMENT_EVENT_CATCH, ELEMENT_EVENT_COMPENSATEDEFINITION, ELEMENT_EVENT_END, ELEMENT_EVENT_ERRORDEFINITION, ELEMENT_EVENT_LISTENER, ELEMENT_EVENT_MESSAGEDEFINITION, ELEMENT_EVENT_SIGNALDEFINITION, ELEMENT_EVENT_START, ELEMENT_EVENT_TERMINATEDEFINITION, ELEMENT_EVENT_THROW, ELEMENT_EVENT_TIMERDEFINITION, ELEMENT_EXECUTION_LISTENER, ELEMENT_EXTENSIONS, ELEMENT_FIELD, ELEMENT_FIELD_STRING, ELEMENT_FLOW_CONDITION, ELEMENT_FLOWNODE_REF, ELEMENT_FORMAL_EXPRESSION, ELEMENT_FORMPROPERTY, ELEMENT_FROM, ELEMENT_GATEWAY_COMPLEX, ELEMENT_GATEWAY_EVENT, ELEMENT_GATEWAY_EXCLUSIVE, ELEMENT_GATEWAY_INCLUSIVE, ELEMENT_GATEWAY_INCOMING, ELEMENT_GATEWAY_OUTGOING, ELEMENT_GATEWAY_PARALLEL, ELEMENT_IMPORT, ELEMENT_IN_MESSAGE, ELEMENT_INPUT_ASSOCIATION, ELEMENT_INTERFACE, ELEMENT_IOSPECIFICATION, ELEMENT_ITEM_DEFINITION, ELEMENT_LANE, ELEMENT_LANESET, ELEMENT_MESSAGE, ELEMENT_MESSAGE_FLOW, ELEMENT_MULTI_INSTANCE_DATA_OUTPUT, ELEMENT_MULTI_INSTANCE_OUTPUT_DATA_ITEM, ELEMENT_MULTIINSTANCE, ELEMENT_MULTIINSTANCE_CARDINALITY, ELEMENT_MULTIINSTANCE_CONDITION, ELEMENT_MULTIINSTANCE_DATAINPUT, ELEMENT_MULTIINSTANCE_DATAITEM, ELEMENT_OPERATION, ELEMENT_OUT_MESSAGE, ELEMENT_OUTPUT_ASSOCIATION, ELEMENT_PARTICIPANT, ELEMENT_POTENTIAL_STARTER, ELEMENT_PROCESS, ELEMENT_RESOURCE, ELEMENT_RESOURCE_ASSIGNMENT, ELEMENT_RESOURCE_REF, ELEMENT_SEQUENCE_FLOW, ELEMENT_SIGNAL, ELEMENT_SOURCE_REF, ELEMENT_SUBPROCESS, ELEMENT_TARGET_REF, ELEMENT_TASK, ELEMENT_TASK_BUSINESSRULE, ELEMENT_TASK_LISTENER, ELEMENT_TASK_MAIL, ELEMENT_TASK_MANUAL, ELEMENT_TASK_RECEIVE, ELEMENT_TASK_SCRIPT, ELEMENT_TASK_SEND, ELEMENT_TASK_SERVICE, ELEMENT_TASK_USER, ELEMENT_TEXT_ANNOTATION, ELEMENT_TEXT_ANNOTATION_TEXT, ELEMENT_TO, ELEMENT_TRANSACTION, ELEMENT_TRANSFORMATION, ELEMENT_VALUE, EXPRESSION_LANGUAGE_ATTRIBUTE, FAILED_JOB_RETRY_TIME_CYCLE, MAP_EXCEPTION, MAP_EXCEPTION_ANDCHILDREN, MAP_EXCEPTION_ERRORCODE, OMGDC_NAMESPACE, OMGDC_PREFIX, OMGDI_NAMESPACE, OMGDI_PREFIX, PROCESS_NAMESPACE, SCHEMA_NAMESPACE, TARGET_NAMESPACE_ATTRIBUTE, TYPE_LANGUAGE_ATTRIBUTE, XPATH_NAMESPACE, XSD_PREFIX, XSI_NAMESPACE, XSI_PREFIX
    • Field Detail

      • LOGGER

        protected static final org.slf4j.Logger LOGGER
      • PROPERTYNAME_INITIAL

        public static final java.lang.String PROPERTYNAME_INITIAL
        See Also:
        Constant Field Values
      • PROPERTYNAME_INITIATOR_VARIABLE_NAME

        public static final java.lang.String PROPERTYNAME_INITIATOR_VARIABLE_NAME
        See Also:
        Constant Field Values
      • PROPERTYNAME_CONDITION

        public static final java.lang.String PROPERTYNAME_CONDITION
        See Also:
        Constant Field Values
      • PROPERTYNAME_CONDITION_TEXT

        public static final java.lang.String PROPERTYNAME_CONDITION_TEXT
        See Also:
        Constant Field Values
      • PROPERTYNAME_TIMER_DECLARATION

        public static final java.lang.String PROPERTYNAME_TIMER_DECLARATION
        See Also:
        Constant Field Values
      • PROPERTYNAME_ISEXPANDED

        public static final java.lang.String PROPERTYNAME_ISEXPANDED
        See Also:
        Constant Field Values
      • PROPERTYNAME_START_TIMER

        public static final java.lang.String PROPERTYNAME_START_TIMER
        See Also:
        Constant Field Values
      • PROPERTYNAME_COMPENSATION_HANDLER_ID

        public static final java.lang.String PROPERTYNAME_COMPENSATION_HANDLER_ID
        See Also:
        Constant Field Values
      • PROPERTYNAME_IS_FOR_COMPENSATION

        public static final java.lang.String PROPERTYNAME_IS_FOR_COMPENSATION
        See Also:
        Constant Field Values
      • PROPERTYNAME_ERROR_EVENT_DEFINITIONS

        public static final java.lang.String PROPERTYNAME_ERROR_EVENT_DEFINITIONS
        See Also:
        Constant Field Values
      • PROPERTYNAME_EVENT_SUBSCRIPTION_DECLARATION

        public static final java.lang.String PROPERTYNAME_EVENT_SUBSCRIPTION_DECLARATION
        See Also:
        Constant Field Values
      • name

        protected java.lang.String name
      • validateSchema

        protected boolean validateSchema
      • validateProcess

        protected boolean validateProcess
      • sourceSystemId

        protected java.lang.String sourceSystemId
      • bpmnModel

        protected org.activiti.bpmn.model.BpmnModel bpmnModel
      • targetNamespace

        protected java.lang.String targetNamespace
      • deployment

        protected DeploymentEntity deployment
        The deployment to which the parsed process definitions will be added.
      • processDefinitions

        protected java.util.List<ProcessDefinitionEntity> processDefinitions
        The end result of the parsing: a list of process definition.
      • sequenceFlows

        protected java.util.Map<java.lang.String,​org.activiti.bpmn.model.SequenceFlow> sequenceFlows
        A map for storing sequence flow based on their id during parsing.
      • currentProcess

        protected org.activiti.bpmn.model.Process currentProcess
      • currentFlowElement

        protected org.activiti.bpmn.model.FlowElement currentFlowElement
      • currentSubprocessStack

        protected java.util.LinkedList<org.activiti.bpmn.model.SubProcess> currentSubprocessStack
      • prefixs

        protected java.util.Map<java.lang.String,​java.lang.String> prefixs
        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.
    • Constructor Detail

    • Method Detail

      • name

        public BpmnParse name​(java.lang.String name)
      • sourceInputStream

        public BpmnParse sourceInputStream​(java.io.InputStream inputStream)
      • sourceResource

        public BpmnParse sourceResource​(java.lang.String resource)
      • sourceUrl

        public BpmnParse sourceUrl​(java.net.URL url)
      • sourceUrl

        public BpmnParse sourceUrl​(java.lang.String url)
      • sourceResource

        public BpmnParse sourceResource​(java.lang.String resource,
                                        java.lang.ClassLoader classLoader)
      • sourceString

        public BpmnParse sourceString​(java.lang.String string)
      • setStreamSource

        protected void setStreamSource​(StreamSource streamSource)
      • setSourceSystemId

        public BpmnParse setSourceSystemId​(java.lang.String sourceSystemId)
      • applyParseHandlers

        protected void applyParseHandlers()
        Parses the 'definitions' root element
      • processFlowElements

        public void processFlowElements​(java.util.Collection<org.activiti.bpmn.model.FlowElement> flowElements)
      • processDI

        public void processDI()
      • createBPMNEdge

        public void createBPMNEdge​(java.lang.String key,
                                   java.util.List<org.activiti.bpmn.model.GraphicInfo> graphicList)
      • getProcessDefinition

        public ProcessDefinitionEntity getProcessDefinition​(java.lang.String processDefinitionKey)
      • isValidateSchema

        public boolean isValidateSchema()
      • setValidateSchema

        public void setValidateSchema​(boolean validateSchema)
      • isValidateProcess

        public boolean isValidateProcess()
      • setValidateProcess

        public void setValidateProcess​(boolean validateProcess)
      • getTargetNamespace

        public java.lang.String getTargetNamespace()
      • setBpmnParserHandlers

        public void setBpmnParserHandlers​(BpmnParseHandlers bpmnParserHandlers)
      • getBpmnModel

        public org.activiti.bpmn.model.BpmnModel getBpmnModel()
      • setBpmnModel

        public void setBpmnModel​(org.activiti.bpmn.model.BpmnModel bpmnModel)
      • setActivityBehaviorFactory

        public void setActivityBehaviorFactory​(ActivityBehaviorFactory activityBehaviorFactory)
      • setListenerFactory

        public void setListenerFactory​(ListenerFactory listenerFactory)
      • getSequenceFlows

        public java.util.Map<java.lang.String,​org.activiti.bpmn.model.SequenceFlow> getSequenceFlows()
      • setCurrentProcessDefinition

        public void setCurrentProcessDefinition​(ProcessDefinitionEntity currentProcessDefinition)
      • getCurrentFlowElement

        public org.activiti.bpmn.model.FlowElement getCurrentFlowElement()
      • setCurrentFlowElement

        public void setCurrentFlowElement​(org.activiti.bpmn.model.FlowElement currentFlowElement)
      • getCurrentProcess

        public org.activiti.bpmn.model.Process getCurrentProcess()
      • setCurrentProcess

        public void setCurrentProcess​(org.activiti.bpmn.model.Process currentProcess)
      • setCurrentSubProcess

        public void setCurrentSubProcess​(org.activiti.bpmn.model.SubProcess subProcess)
      • getCurrentSubProcess

        public org.activiti.bpmn.model.SubProcess getCurrentSubProcess()
      • removeCurrentSubProcess

        public void removeCurrentSubProcess()