public ScriptTaskActivityBehavior createScriptTaskActivityBehavior(ScriptTask scriptTask) { String language = scriptTask.getScriptFormat(); if (language == null) { language = ScriptingEngines.DEFAULT_SCRIPTING_LANGUAGE; } return new ScriptTaskActivityBehavior(scriptTask.getId(), scriptTask.getScript(), language, scriptTask.getResultVariable(), scriptTask.isAutoStoreVariables()); }
@Override protected BaseElement convertXMLToElement(XMLStreamReader xtr, BpmnModel model) throws Exception { ScriptTask scriptTask = new ScriptTask(); BpmnXMLUtil.addXMLLocation(scriptTask, xtr); scriptTask.setScriptFormat(xtr.getAttributeValue(null, ATTRIBUTE_TASK_SCRIPT_FORMAT)); scriptTask.setResultVariable(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_SCRIPT_RESULTVARIABLE)); if (StringUtils.isEmpty(scriptTask.getResultVariable())) { scriptTask.setResultVariable(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_SERVICE_RESULTVARIABLE)); } String autoStoreVariables = xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_SCRIPT_AUTO_STORE_VARIABLE); if (StringUtils.isNotEmpty(autoStoreVariables)) { scriptTask.setAutoStoreVariables(Boolean.valueOf(autoStoreVariables)); } parseChildElements(getXMLElementName(), scriptTask, childParserMap, model, xtr); return scriptTask; }
protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map<String, JsonNode> shapeMap) { ScriptTask task = new ScriptTask(); task.setScriptFormat(getPropertyValueAsString(PROPERTY_SCRIPT_FORMAT, elementNode)); task.setScript(getPropertyValueAsString(PROPERTY_SCRIPT_TEXT, elementNode)); return task; } }
protected void convertElementToJson(ObjectNode propertiesNode, BaseElement baseElement) { ScriptTask scriptTask = (ScriptTask) baseElement; propertiesNode.put(PROPERTY_SCRIPT_FORMAT, scriptTask.getScriptFormat()); propertiesNode.put(PROPERTY_SCRIPT_TEXT, scriptTask.getScript()); }
@Override protected ScriptTask createProcessArtifact(ScriptStepDefinition stepDefinition, WorkflowDefinitionConversion conversion) { ScriptTask scriptTask = new ScriptTask(); scriptTask.setId(conversion.getUniqueNumberedId(ConversionConstants.SCRIPT_TASK_ID_PREFIX)); scriptTask.setName(stepDefinition.getName()); scriptTask.setScript(stepDefinition.getScript()); if (stepDefinition.getScriptLanguage() != null) { scriptTask.setScriptFormat(stepDefinition.getScriptLanguage()); } else { scriptTask.setScriptFormat("JavaScript"); } addFlowElement(conversion, scriptTask, true); return scriptTask; }
@Override protected void writeAdditionalAttributes(BaseElement element, BpmnModel model, XMLStreamWriter xtw) throws Exception { ScriptTask scriptTask = (ScriptTask) element; writeDefaultAttribute(ATTRIBUTE_TASK_SCRIPT_FORMAT, scriptTask.getScriptFormat(), xtw); writeQualifiedAttribute(ATTRIBUTE_TASK_SCRIPT_RESULTVARIABLE, scriptTask.getResultVariable(), xtw); writeQualifiedAttribute(ATTRIBUTE_TASK_SCRIPT_AUTO_STORE_VARIABLE, String.valueOf(scriptTask.isAutoStoreVariables()), xtw); }
@Override protected void writeAdditionalChildElements(BaseElement element, BpmnModel model, XMLStreamWriter xtw) throws Exception { ScriptTask scriptTask = (ScriptTask) element; if (StringUtils.isNotEmpty(scriptTask.getScript())) { xtw.writeStartElement(ATTRIBUTE_TASK_SCRIPT_TEXT); xtw.writeCData(scriptTask.getScript()); xtw.writeEndElement(); } } }
protected void executeParse(BpmnParse bpmnParse, ScriptTask scriptTask) { if (StringUtils.isEmpty(scriptTask.getScript())) { logger.warn("No script provided for scriptTask " + scriptTask.getId()); } scriptTask.setBehavior(bpmnParse.getActivityBehaviorFactory().createScriptTaskActivityBehavior(scriptTask)); }
public void parseChildElement(XMLStreamReader xtr, BaseElement parentElement, BpmnModel model) throws Exception { if (!(parentElement instanceof ScriptTask)) return; ((ScriptTask) parentElement).setScript(xtr.getElementText()); } }
ScriptTask element = new ScriptTask(); element.setId("script"); element.setScriptFormat("js"); element.setScript("// do nothing"); element.setAsynchronous(true); process.addFlowElement(element);
@Override protected void writeAdditionalAttributes(BaseElement element, XMLStreamWriter xtw) throws Exception { ScriptTask scriptTask = (ScriptTask) element; writeDefaultAttribute(ATTRIBUTE_TASK_SCRIPT_FORMAT, scriptTask.getScriptFormat(), xtw); writeQualifiedAttribute(ATTRIBUTE_TASK_SCRIPT_RESULTVARIABLE, scriptTask.getResultVariable(), xtw); writeQualifiedAttribute(ATTRIBUTE_TASK_SCRIPT_AUTO_STORE_VARIABLE, String.valueOf(scriptTask.isAutoStoreVariables()), xtw); }
protected void convertElementToJson(ObjectNode propertiesNode, BaseElement baseElement) { ScriptTask scriptTask = (ScriptTask) baseElement; propertiesNode.put(PROPERTY_SCRIPT_FORMAT, scriptTask.getScriptFormat()); propertiesNode.put(PROPERTY_SCRIPT_TEXT, scriptTask.getScript()); }
@Override protected void executeValidation(BpmnModel bpmnModel, Process process, List<ValidationError> errors) { List<ScriptTask> scriptTasks = process.findFlowElementsOfType(ScriptTask.class); for (ScriptTask scriptTask : scriptTasks) { if (StringUtils.isEmpty(scriptTask.getScript())) { addError(errors, Problems.SCRIPT_TASK_MISSING_SCRIPT, process, scriptTask, "No script provided for script task"); } } }
protected void executeParse(BpmnParse bpmnParse, ScriptTask scriptTask) { if (StringUtils.isEmpty(scriptTask.getScript())) { logger.warn("No script provided for scriptTask " + scriptTask.getId()); } scriptTask.setBehavior(bpmnParse.getActivityBehaviorFactory().createScriptTaskActivityBehavior(scriptTask)); }
public void parseChildElement(XMLStreamReader xtr, BaseElement parentElement, BpmnModel model) throws Exception { if (parentElement instanceof ScriptTask == false) return; ((ScriptTask) parentElement).setScript(xtr.getElementText()); } }
ScriptTask element = new ScriptTask(); element.setId("script1"); element.setScriptFormat("js"); element.setAsynchronous(true); element.setScript("execution.setVariable('foo', 'bar');"); process.addFlowElement(element); ScriptTask element = new ScriptTask(); element.setId("script2"); element.setScriptFormat("js"); element.setScript("throw new Error()"); process.addFlowElement(element);
public ScriptTaskActivityBehavior createScriptTaskActivityBehavior(ScriptTask scriptTask) { String language = scriptTask.getScriptFormat(); if (language == null) { language = ScriptingEngines.DEFAULT_SCRIPTING_LANGUAGE; } return new ScriptTaskActivityBehavior(scriptTask.getId(), scriptTask.getScript(), language, scriptTask.getResultVariable(), scriptTask.isAutoStoreVariables()); }
@Override protected BaseElement convertXMLToElement(XMLStreamReader xtr, BpmnModel model) throws Exception { ScriptTask scriptTask = new ScriptTask(); BpmnXMLUtil.addXMLLocation(scriptTask, xtr); scriptTask.setScriptFormat(xtr.getAttributeValue(null, ATTRIBUTE_TASK_SCRIPT_FORMAT)); scriptTask.setResultVariable(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_SCRIPT_RESULTVARIABLE)); if (StringUtils.isEmpty(scriptTask.getResultVariable())) { scriptTask.setResultVariable(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_SERVICE_RESULTVARIABLE)); } String autoStoreVariables = xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_SCRIPT_AUTO_STORE_VARIABLE); if (StringUtils.isNotEmpty(autoStoreVariables)) { scriptTask.setAutoStoreVariables(Boolean.valueOf(autoStoreVariables)); } parseChildElements(getXMLElementName(), scriptTask, childParserMap, model, xtr); return scriptTask; }
@Override protected void writeAdditionalAttributes(BaseElement element, BpmnModel model, XMLStreamWriter xtw) throws Exception { ScriptTask scriptTask = (ScriptTask) element; writeDefaultAttribute(ATTRIBUTE_TASK_SCRIPT_FORMAT, scriptTask.getScriptFormat(), xtw); writeQualifiedAttribute(ATTRIBUTE_TASK_SCRIPT_RESULTVARIABLE, scriptTask.getResultVariable(), xtw); writeQualifiedAttribute(ATTRIBUTE_TASK_SCRIPT_AUTO_STORE_VARIABLE, String.valueOf(scriptTask.isAutoStoreVariables()), xtw); }
protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map<String, JsonNode> shapeMap) { ScriptTask task = new ScriptTask(); task.setScriptFormat(getPropertyValueAsString(PROPERTY_SCRIPT_FORMAT, elementNode)); task.setScript(getPropertyValueAsString(PROPERTY_SCRIPT_TEXT, elementNode)); return task; } }