Class DocumentEventCaseStartParseHandler
java.lang.Object
org.flowable.cmmn.engine.impl.parser.handler.AbstractCmmnParseHandler<org.flowable.cmmn.model.Case>
com.flowable.platform.engine.impl.documentevent.cmmn.DocumentEventCaseStartParseHandler
- All Implemented Interfaces:
org.flowable.cmmn.engine.impl.parser.CmmnParseHandler
public class DocumentEventCaseStartParseHandler
extends org.flowable.cmmn.engine.impl.parser.handler.AbstractCmmnParseHandler<org.flowable.cmmn.model.Case>
Detects a
<flowable:documentEvent> extension element on the CMMN <case> element and
attaches a DocumentEventCaseStartLifecycleHandler via Case.addStartLifecycleHandler(...) so
the deployer creates / removes one __flowableDocument* subscription per configured lifecycle,
tied to the case definition.
Configuration shape is validated by DocumentEventListenerValidator ahead of deployment, so this
handler only does the wiring.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddContentItemOutParameter(org.flowable.cmmn.model.Case caseModel, DocumentEventDeclaration declaration) Add a<flowable:eventOutParameter source="contentItem" target="<configured-name>"/>extension element on the<case>so the standardCmmnEventInstanceOutParameterHandlerwrites the matched content item as a variable whenCaseInstanceHelperImpl.applyCaseInstanceBuilderruns at case-instance creation time.protected org.flowable.cmmn.model.ExtensionAttributeprotected voidexecuteParse(org.flowable.cmmn.engine.impl.parser.CmmnParserImpl cmmnParser, org.flowable.cmmn.engine.impl.parser.CmmnParseResult cmmnParseResult, org.flowable.cmmn.model.Case caseModel) Collection<Class<? extends org.flowable.cmmn.model.BaseElement>> protected booleanparseBoolean(org.flowable.cmmn.model.ExtensionElement extension, String attributeName, boolean defaultValue) readLifecycleChildren(org.flowable.cmmn.model.ExtensionElement extension) Lifecycle values are nested as<flowable:lifecycle>token</flowable:lifecycle>child elements of the<flowable:documentEvent>extension element on the<case>.protected List<DocumentEventLocation> readLocationChildren(org.flowable.cmmn.model.ExtensionElement extension) Location rows are nested as<flowable:location scope="...">value</flowable:location>child elements of the<flowable:documentEvent>extension element on the<case>.protected List<DocumentEventDeclaration.ResolvedLocation> toResolvedLocations(List<DocumentEventLocation> locations) Methods inherited from class org.flowable.cmmn.engine.impl.parser.handler.AbstractCmmnParseHandler
parse, processPlanFragment
-
Field Details
-
EXTENSION_ELEMENT_NAME
- See Also:
-
CHILD_LIFECYCLE
- See Also:
-
CHILD_LOCATION
- See Also:
-
ATTR_LOCATION_SCOPE
- See Also:
-
ATTR_VARIABLE_NAME
- See Also:
-
ATTR_DEFINITION_KEY
- See Also:
-
ATTR_TRANSIENT
- See Also:
-
-
Constructor Details
-
DocumentEventCaseStartParseHandler
public DocumentEventCaseStartParseHandler()
-
-
Method Details
-
getHandledTypes
-
executeParse
protected void executeParse(org.flowable.cmmn.engine.impl.parser.CmmnParserImpl cmmnParser, org.flowable.cmmn.engine.impl.parser.CmmnParseResult cmmnParseResult, org.flowable.cmmn.model.Case caseModel) - Specified by:
executeParsein classorg.flowable.cmmn.engine.impl.parser.handler.AbstractCmmnParseHandler<org.flowable.cmmn.model.Case>
-
addContentItemOutParameter
protected void addContentItemOutParameter(org.flowable.cmmn.model.Case caseModel, DocumentEventDeclaration declaration) Add a<flowable:eventOutParameter source="contentItem" target="<configured-name>"/>extension element on the<case>so the standardCmmnEventInstanceOutParameterHandlerwrites the matched content item as a variable whenCaseInstanceHelperImpl.applyCaseInstanceBuilderruns at case-instance creation time. Mirrors the BPMN start path that uses the same wire shape on the start event. -
attribute
-
parseBoolean
protected boolean parseBoolean(org.flowable.cmmn.model.ExtensionElement extension, String attributeName, boolean defaultValue) -
readLifecycleChildren
Lifecycle values are nested as<flowable:lifecycle>token</flowable:lifecycle>child elements of the<flowable:documentEvent>extension element on the<case>. Each child's body text contributes one lifecycle value; empty / whitespace-only entries are skipped. -
toResolvedLocations
protected List<DocumentEventDeclaration.ResolvedLocation> toResolvedLocations(List<DocumentEventLocation> locations) -
readLocationChildren
protected List<DocumentEventLocation> readLocationChildren(org.flowable.cmmn.model.ExtensionElement extension) Location rows are nested as<flowable:location scope="...">value</flowable:location>child elements of the<flowable:documentEvent>extension element on the<case>. Thevaluebody is optional (scope/anycarry no value); a missing scope skips the row. Validation errors are surfaced separately byDocumentEventListenerValidator.
-