Package org.flowable.bpmn.model

# Class SubProcess

java.lang.Object
org.flowable.bpmn.model.BaseElement
org.flowable.bpmn.model.FlowElement
org.flowable.bpmn.model.FlowNode
org.flowable.bpmn.model.Activity
org.flowable.bpmn.model.SubProcess

All Implemented Interfaces:
  `FlowElementsContainer`, `HasExecutionListeners`, `HasExtensionAttributes`

Direct Known Subclasses:
  `AdhocSubProcess`, `EventSubProcess`, `Transaction`

public class SubProcess extends Activity implements FlowElementsContainer

Author:
  Tijs Rademakers

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected List<Artifact>`
  `artifactList`
  `protected Map<String,Artifact>`
  `artifactMap`
  `protected List<ValuedDataObject>`
  `dataObjects`
  `protected List<FlowElement>`
  `flowElementList`
  `protected Map<String,FlowElement>`
  `flowElementMap`

  ### Fields inherited from class org.flowable.bpmn.model.Activity

  `boundaryEvents, dataInputAssociations, dataOutputAssociations, defaultFlow, failedJobRetryTimeCycleValue, forCompensation, ioSpecification, loopCharacteristics, mapExceptions`

  ### Fields inherited from class org.flowable.bpmn.model.FlowNode

  `asynchronous, asynchronousLeave, asynchronousLeaveNotExclusive, behavior, incomingFlows, notExclusive, outgoingFlows`

  ### Fields inherited from class org.flowable.bpmn.model.FlowElement

  `documentation, executionListeners, name, parentContainer`

  ### Fields inherited from class org.flowable.bpmn.model.BaseElement

  `attributes, extensionElements, id, xmlColumnNumber, xmlRowNumber`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SubProcess()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addArtifact(Artifact artifact)`
  `void`
  `addArtifactToMap(Artifact artifact)`
  `void`
  `addFlowElement(FlowElement element)`
  `void`
  `addFlowElementToMap(FlowElement element)`
  `SubProcess`
  `clone()`
  `boolean`
  `containsFlowElementId(String id)`
  `<T extends FlowElement>
  List<T>`
  `findAllSubFlowElementInFlowMapOfType(Class<T> clazz)`
  `<T extends FlowElement>
  T`
  `findFirstSubFlowElementInFlowMapOfType(Class<T> clazz)`
  `Artifact`
  `getArtifact(String id)`
  `Map<String,Artifact>`
  `getArtifactMap()`
  `Collection<Artifact>`
  `getArtifacts()`
  `List<ValuedDataObject>`
  `getDataObjects()`
  `FlowElement`
  `getFlowElement(String id)`
  `Map<String,FlowElement>`
  `getFlowElementMap()`
  `Collection<FlowElement>`
  `getFlowElements()`
  `void`
  `removeArtifact(String artifactId)`
  `void`
  `removeFlowElement(String elementId)`
  `void`
  `removeFlowElementFromMap(String elementId)`
  `void`
  `setDataObjects(List<ValuedDataObject> dataObjects)`
  `void`
  `setFlowElementMap(Map<String,FlowElement> flowElementMap)`
  `void`
  `setValues(SubProcess otherElement)`

  ### Methods inherited from class org.flowable.bpmn.model.Activity

  `getBoundaryEvents, getDataInputAssociations, getDataOutputAssociations, getDefaultFlow, getFailedJobRetryTimeCycleValue, getIoSpecification, getLoopCharacteristics, getMapExceptions, hasMultiInstanceLoopCharacteristics, isForCompensation, setBoundaryEvents, setDataInputAssociations, setDataOutputAssociations, setDefaultFlow, setFailedJobRetryTimeCycleValue, setForCompensation, setIoSpecification, setLoopCharacteristics, setMapExceptions, setValues`

  ### Methods inherited from class org.flowable.bpmn.model.FlowNode

  `getBehavior, getIncomingFlows, getOutgoingFlows, isAsynchronous, isAsynchronousLeave, isAsynchronousLeaveExclusive, isAsynchronousLeaveNotExclusive, isExclusive, isNotExclusive, setAsynchronous, setAsynchronousLeave, setAsynchronousLeaveExclusive, setAsynchronousLeaveNotExclusive, setBehavior, setExclusive, setIncomingFlows, setNotExclusive, setOutgoingFlows, setValues`

  ### Methods inherited from class org.flowable.bpmn.model.FlowElement

  `getDocumentation, getExecutionListeners, getName, getParentContainer, getSubProcess, setDocumentation, setExecutionListeners, setName, setParentContainer, setValues`

  ### Methods inherited from class org.flowable.bpmn.model.BaseElement

  `addAttribute, addExtensionElement, getAttributes, getAttributeValue, getExtensionElements, getId, getXmlColumnNumber, getXmlRowNumber, setAttributes, setExtensionElements, setId, setValues, setXmlColumnNumber, setXmlRowNumber`

  ### Methods inherited from class java.lang.Object

  `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.flowable.bpmn.model.FlowElementsContainer

  `getId`

- ## Field Details

  - ### flowElementMap

    protected Map<String,FlowElement> flowElementMap

  - ### flowElementList

    protected List<FlowElement> flowElementList

  - ### artifactMap

    protected Map<String,Artifact> artifactMap

  - ### artifactList

    protected List<Artifact> artifactList

  - ### dataObjects

    protected List<ValuedDataObject> dataObjects

- ## Constructor Details

  - ### SubProcess

    public SubProcess()

- ## Method Details

  - ### getFlowElement

    public FlowElement getFlowElement(String id)
    Specified by:
      `getFlowElement` in interface `FlowElementsContainer`

  - ### getFlowElements

    public Collection<FlowElement> getFlowElements()
    Specified by:
      `getFlowElements` in interface `FlowElementsContainer`

  - ### addFlowElement

    public void addFlowElement(FlowElement element)
    Specified by:
      `addFlowElement` in interface `FlowElementsContainer`

  - ### addFlowElementToMap

    public void addFlowElementToMap(FlowElement element)
    Specified by:
      `addFlowElementToMap` in interface `FlowElementsContainer`

  - ### removeFlowElement

    public void removeFlowElement(String elementId)
    Specified by:
      `removeFlowElement` in interface `FlowElementsContainer`

  - ### removeFlowElementFromMap

    public void removeFlowElementFromMap(String elementId)
    Specified by:
      `removeFlowElementFromMap` in interface `FlowElementsContainer`

  - ### getFlowElementMap

    public Map<String,FlowElement> getFlowElementMap()
    Specified by:
      `getFlowElementMap` in interface `FlowElementsContainer`

  - ### setFlowElementMap

    public void setFlowElementMap(Map<String,FlowElement> flowElementMap)

  - ### containsFlowElementId

    public boolean containsFlowElementId(String id)

  - ### findFirstSubFlowElementInFlowMapOfType

    public <T extends FlowElement> T findFirstSubFlowElementInFlowMapOfType(Class<T> clazz)

  - ### findAllSubFlowElementInFlowMapOfType

    public <T extends FlowElement> List<T> findAllSubFlowElementInFlowMapOfType(Class<T> clazz)

  - ### getArtifact

    public Artifact getArtifact(String id)
    Specified by:
      `getArtifact` in interface `FlowElementsContainer`

  - ### getArtifacts

    public Collection<Artifact> getArtifacts()
    Specified by:
      `getArtifacts` in interface `FlowElementsContainer`

  - ### getArtifactMap

    public Map<String,Artifact> getArtifactMap()
    Specified by:
      `getArtifactMap` in interface `FlowElementsContainer`

  - ### addArtifact

    public void addArtifact(Artifact artifact)
    Specified by:
      `addArtifact` in interface `FlowElementsContainer`

  - ### addArtifactToMap

    public void addArtifactToMap(Artifact artifact)
    Specified by:
      `addArtifactToMap` in interface `FlowElementsContainer`

  - ### removeArtifact

    public void removeArtifact(String artifactId)
    Specified by:
      `removeArtifact` in interface `FlowElementsContainer`

  - ### clone

    public SubProcess clone()
    Specified by:
      `clone` in class `FlowElement`

  - ### setValues

    public void setValues(SubProcess otherElement)

  - ### getDataObjects

    public List<ValuedDataObject> getDataObjects()

  - ### setDataObjects

    public void setDataObjects(List<ValuedDataObject> dataObjects)