protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map<String, JsonNode> shapeMap) { StartEvent startEvent = new StartEvent(); startEvent.setInitiator(getPropertyValueAsString(PROPERTY_NONE_STARTEVENT_INITIATOR, elementNode)); String stencilId = BpmnJsonConverterUtil.getStencilId(elementNode); if (STENCIL_EVENT_START_NONE.equals(stencilId)) { String formKey = getPropertyValueAsString(PROPERTY_FORMKEY, elementNode); if (StringUtils.isNotEmpty(formKey)) { startEvent.setFormKey(formKey); } else { JsonNode formReferenceNode = getProperty(PROPERTY_FORM_REFERENCE, elementNode); if (formReferenceNode != null && formReferenceNode.get("id") != null) { if (formMap != null && formMap.containsKey(formReferenceNode.get("id").asText())) { startEvent.setFormKey(formMap.get(formReferenceNode.get("id").asText())); } } } convertJsonToFormProperties(elementNode, startEvent); } else if (STENCIL_EVENT_START_TIMER.equals(stencilId)) { convertJsonToTimerDefinition(elementNode, startEvent); } else if (STENCIL_EVENT_START_ERROR.equals(stencilId)) { convertJsonToErrorDefinition(elementNode, startEvent); } else if (STENCIL_EVENT_START_MESSAGE.equals(stencilId)) { convertJsonToMessageDefinition(elementNode, startEvent); } else if (STENCIL_EVENT_START_SIGNAL.equals(stencilId)) { convertJsonToSignalDefinition(elementNode, startEvent); } return startEvent; }
@Override protected BaseElement convertXMLToElement(XMLStreamReader xtr, BpmnModel model) throws Exception { String formKey = xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_FORM_FORMKEY); StartEvent startEvent = null; if (StringUtils.isNotEmpty(formKey) && model.getStartEventFormTypes() != null && model.getStartEventFormTypes().contains(formKey)) { startEvent = new AlfrescoStartEvent(); } if (startEvent == null) { startEvent = new StartEvent(); } BpmnXMLUtil.addXMLLocation(startEvent, xtr); startEvent.setInitiator(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_EVENT_START_INITIATOR)); boolean interrupting = true; String interruptingAttribute = xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_EVENT_START_INTERRUPTING); if (ATTRIBUTE_VALUE_FALSE.equalsIgnoreCase(interruptingAttribute)) { interrupting = false; } startEvent.setInterrupting(interrupting); startEvent.setFormKey(formKey); parseChildElements(getXMLElementName(), startEvent, model, xtr); return startEvent; }
@Override protected BaseElement convertXMLToElement(XMLStreamReader xtr) throws Exception { String formKey = xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_FORM_FORMKEY); StartEvent startEvent = null; if (StringUtils.isNotEmpty(formKey)) { if (formTypes.contains(formKey)) { startEvent = new AlfrescoStartEvent(); } } if (startEvent == null) { startEvent = new StartEvent(); } BpmnXMLUtil.addXMLLocation(startEvent, xtr); startEvent.setInitiator(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_EVENT_START_INITIATOR)); startEvent.setFormKey(formKey); parseChildElements(getXMLElementName(), startEvent, xtr); return startEvent; }
protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map<String, JsonNode> shapeMap) { StartEvent startEvent = new StartEvent(); startEvent.setInitiator(getPropertyValueAsString(PROPERTY_NONE_STARTEVENT_INITIATOR, elementNode)); String stencilId = BpmnJsonConverterUtil.getStencilId(elementNode); if (STENCIL_EVENT_START_NONE.equals(stencilId)) { String formKey = getPropertyValueAsString(PROPERTY_FORMKEY, elementNode); if (StringUtils.isNotEmpty(formKey)) { startEvent.setFormKey(formKey); } else { JsonNode formReferenceNode = getProperty(PROPERTY_FORM_REFERENCE, elementNode); if (formReferenceNode != null && formReferenceNode.get("id") != null) { if (formMap != null && formMap.containsKey(formReferenceNode.get("id").asText())) { startEvent.setFormKey(formMap.get(formReferenceNode.get("id").asText())); } } } convertJsonToFormProperties(elementNode, startEvent); } else if (STENCIL_EVENT_START_TIMER.equals(stencilId)) { convertJsonToTimerDefinition(elementNode, startEvent); } else if (STENCIL_EVENT_START_ERROR.equals(stencilId)) { convertJsonToErrorDefinition(elementNode, startEvent); } else if (STENCIL_EVENT_START_MESSAGE.equals(stencilId)) { convertJsonToMessageDefinition(elementNode, startEvent); } else if (STENCIL_EVENT_START_SIGNAL.equals(stencilId)) { convertJsonToSignalDefinition(elementNode, startEvent); } return startEvent; }
@Override protected BaseElement convertXMLToElement(XMLStreamReader xtr, BpmnModel model) throws Exception { String formKey = xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_FORM_FORMKEY); StartEvent startEvent = null; if (StringUtils.isNotEmpty(formKey)) { if (model.getStartEventFormTypes() != null && model.getStartEventFormTypes().contains(formKey)) { startEvent = new AlfrescoStartEvent(); } } if (startEvent == null) { startEvent = new StartEvent(); } BpmnXMLUtil.addXMLLocation(startEvent, xtr); startEvent.setInitiator(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_EVENT_START_INITIATOR)); boolean interrupting = true; String interruptingAttribute = xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_EVENT_START_INTERRUPTING); if (ATTRIBUTE_VALUE_FALSE.equalsIgnoreCase(interruptingAttribute)) { interrupting = false; } startEvent.setInterrupting(interrupting); startEvent.setFormKey(formKey); parseChildElements(getXMLElementName(), startEvent, model, xtr); return startEvent; }
protected void initializeProcess(WorkflowDefinitionConversion conversion) { WorkflowDefinition workflowDefinition = conversion.getWorkflowDefinition(); // Create new process Process process = conversion.getProcess(); process.setId(generateProcessId(workflowDefinition)); process.setName(workflowDefinition.getName()); process.setDocumentation(workflowDefinition.getDescription()); if (workflowDefinition.getCategory() != null) { conversion.getBpmnModel().setTargetNamespace(workflowDefinition.getCategory()); } conversion.setProcess(process); // Add start-event StartEvent startEvent = new StartEvent(); startEvent.setId(START_EVENT_ID); if(workflowDefinition.getStartFormDefinition() != null && workflowDefinition.getStartFormDefinition().getFormKey() != null) { startEvent.setFormKey(workflowDefinition.getStartFormDefinition().getFormKey()); } process.addFlowElement(startEvent); conversion.setLastActivityId(startEvent.getId()); }