/** * Add an extension element to the element. * * @param extensionElement the extension element to add * @return the builder object */ public B addExtensionElement(BpmnModelElementInstance extensionElement) { ExtensionElements extensionElements = getCreateSingleChild(ExtensionElements.class); extensionElements.addChildElement(extensionElement); return myself; }
private void addExecutionListener(BaseElement element, String eventName) { ExtensionElements extensionElements = element.getModelInstance().newInstance(ExtensionElements.class); ModelElementInstance executionListener = extensionElements.addExtensionElement(CAMUNDA_NS, "executionListener"); executionListener.setAttributeValueNs(CAMUNDA_NS, "class", ModelExecutionContextExecutionListener.class.getName()); executionListener.setAttributeValueNs(CAMUNDA_NS, "event", eventName); element.setExtensionElements(extensionElements); }
private void assertUserTask(String eventName) { UserTask userTask = ModelExecutionContextTaskListener.userTask; assertNotNull(userTask); ModelElementInstance taskListener = userTask.getExtensionElements().getUniqueChildElementByNameNs(CAMUNDA_NS, "taskListener"); assertEquals(eventName, taskListener.getAttributeValueNs(CAMUNDA_NS, "event")); assertEquals(ModelExecutionContextTaskListener.class.getName(), taskListener.getAttributeValueNs(CAMUNDA_NS, "class")); BpmnModelInstance modelInstance = ModelExecutionContextTaskListener.modelInstance; Collection<ModelElementInstance> tasks = modelInstance.getModelElementsByType(modelInstance.getModel().getType(Task.class)); assertTrue(tasks.contains(userTask)); }
protected static Stream<String> queryCamundaPropertyValues(BaseElement modelElementInstance, String propertyName) { return modelElementInstance.getExtensionElements().getElementsQuery().filterByType(CamundaProperties.class).list().stream() // .map(CamundaProperties::getCamundaProperties) // .flatMap(Collection::stream) // .filter(property -> property.getCamundaName().equals(propertyName)) // .map(CamundaProperty::getCamundaValue) // .filter(Objects::nonNull) // ; }
final List<CamundaIn> inputAssociations = extensionElements.getElementsQuery().filterByType(CamundaIn.class) .list(); for (final CamundaIn inputAssociation : inputAssociations) { final List<CamundaOut> outputAssociations = extensionElements.getElementsQuery() .filterByType(CamundaOut.class).list(); for (final CamundaOut outputAssociation : outputAssociations) {
/** * Add an extension element to the element. * * @param extensionElement the extension element to add * @return the builder object */ public B addExtensionElement(BpmnModelElementInstance extensionElement) { ExtensionElements extensionElements = getCreateSingleChild(ExtensionElements.class); extensionElements.addChildElement(extensionElement); return myself; }
private boolean hasProperty(String propertyName, BpmnElement element) { ExtensionElements elements = element.getBaseElement().getExtensionElements(); if (elements == null) { return false; } Query<CamundaProperties> query = elements.getElementsQuery() .filterByType(CamundaProperties.class); if (query.count() == 0) { return false; } Collection<CamundaProperty> properties = query .singleResult() .getCamundaProperties(); return properties.stream().anyMatch(p -> p.getCamundaName() != null && p.getCamundaName().equals(propertyName)); } }
private void deployProcess(String eventName) { BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .userTask(USER_TASK_ID) .endEvent() .done(); ExtensionElements extensionElements = modelInstance.newInstance(ExtensionElements.class); ModelElementInstance taskListener = extensionElements.addExtensionElement(CAMUNDA_NS, "taskListener"); taskListener.setAttributeValueNs(CAMUNDA_NS, "class", ModelExecutionContextTaskListener.class.getName()); taskListener.setAttributeValueNs(CAMUNDA_NS, "event", eventName); UserTask userTask = modelInstance.getModelElementById(USER_TASK_ID); userTask.setExtensionElements(extensionElements); deploymentId = repositoryService.createDeployment().addModelInstance("process.bpmn", modelInstance).deploy().getId(); }
private void assertUserTask(String eventName) { UserTask userTask = ModelExecutionContextTaskListener.userTask; assertNotNull(userTask); ModelElementInstance taskListener = userTask.getExtensionElements().getUniqueChildElementByNameNs(CAMUNDA_NS, "taskListener"); assertEquals(eventName, taskListener.getAttributeValueNs(CAMUNDA_NS, "event")); assertEquals(ModelExecutionContextTaskListener.class.getName(), taskListener.getAttributeValueNs(CAMUNDA_NS, "class")); BpmnModelInstance modelInstance = ModelExecutionContextTaskListener.modelInstance; Collection<ModelElementInstance> tasks = modelInstance.getModelElementsByType(modelInstance.getModel().getType(Task.class)); assertTrue(tasks.contains(userTask)); }
/** * Add an extension element to the element. * * @param extensionElement the extension element to add * @return the builder object */ public B addExtensionElement(BpmnModelElementInstance extensionElement) { ExtensionElements extensionElements = getCreateSingleChild(ExtensionElements.class); extensionElements.addChildElement(extensionElement); return myself; }
final List<CamundaIn> inputAssociations = extensionElements.getElementsQuery().filterByType(CamundaIn.class) .list(); for (final CamundaIn inputAssociation : inputAssociations) { final List<CamundaOut> outputAssociations = extensionElements.getElementsQuery() .filterByType(CamundaOut.class).list(); for (final CamundaOut outputAssociation : outputAssociations) {
private void addExecutionListener(BaseElement element, String eventName) { ExtensionElements extensionElements = element.getModelInstance().newInstance(ExtensionElements.class); ModelElementInstance executionListener = extensionElements.addExtensionElement(CAMUNDA_NS, "executionListener"); executionListener.setAttributeValueNs(CAMUNDA_NS, "class", ModelExecutionContextExecutionListener.class.getName()); executionListener.setAttributeValueNs(CAMUNDA_NS, "event", eventName); element.setExtensionElements(extensionElements); }
private void enableSetVariable(BaseElement element) { CamundaExecutionListener executionListener = element.getModelInstance().newInstance(CamundaExecutionListener.class); executionListener.setCamundaEvent("end"); executionListener.setCamundaClass(VariableSetterDelegate.class.getName()); // extension elements should exist because we have camunda:properties element.getExtensionElements().addChildElement(executionListener); }
/** * Get process variables from form fields (user tasks) * * @param element * BpmnElement * @param extensionElements * ExtensionElements * @param scopeElementId * ScopeElementId * @return variables */ private LinkedHashMap<String, ProcessVariableOperation> getVariablesFromFormData(final BpmnElement element, final ExtensionElements extensionElements, final String scopeElementId) { final LinkedHashMap<String, ProcessVariableOperation> processVariables = new LinkedHashMap<String, ProcessVariableOperation>(); final Query<CamundaFormData> formDataQuery = extensionElements.getElementsQuery() .filterByType(CamundaFormData.class); if (formDataQuery.count() > 0) { final CamundaFormData formData = formDataQuery.singleResult(); if (formData != null) { final Collection<CamundaFormField> formFields = formData.getCamundaFormFields(); for (final CamundaFormField field : formFields) { processVariables.put(field.getCamundaId(), new ProcessVariableOperation(field.getCamundaId(), element, ElementChapter.FormData, KnownElementFieldType.FormField, null, VariableOperation.WRITE, scopeElementId)); } } } return processVariables; }
private void deployProcess(String eventName) { BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .userTask(USER_TASK_ID) .endEvent() .done(); ExtensionElements extensionElements = modelInstance.newInstance(ExtensionElements.class); ModelElementInstance taskListener = extensionElements.addExtensionElement(CAMUNDA_NS, "taskListener"); taskListener.setAttributeValueNs(CAMUNDA_NS, "class", ModelExecutionContextTaskListener.class.getName()); taskListener.setAttributeValueNs(CAMUNDA_NS, "event", eventName); UserTask userTask = modelInstance.getModelElementById(USER_TASK_ID); userTask.setExtensionElements(extensionElements); deploymentId = repositoryService.createDeployment().addModelInstance("process.bpmn", modelInstance).deploy().getId(); }
xorGateway.addChildElement(extensionElements); xorGateway.getExtensionElements().addChildElement(executionListener);
List<CamundaExecutionListener> listenerList = extensionElements.getElementsQuery() .filterByType(CamundaExecutionListener.class).list(); for (final CamundaExecutionListener listener : listenerList) {
List<CamundaTaskListener> listenerList = extensionElements.getElementsQuery() .filterByType(CamundaTaskListener.class).list(); for (final CamundaTaskListener listener : listenerList) {
final List<CamundaTaskListener> listenerList = extensionElements.getElementsQuery() .filterByType(CamundaTaskListener.class).list(); for (final CamundaTaskListener listener : listenerList) {
final List<CamundaExecutionListener> listenerList = extensionElements.getElementsQuery() .filterByType(CamundaExecutionListener.class).list(); for (final CamundaExecutionListener listener : listenerList) {