protected void validateFieldDeclarationsForDmn(org.activiti.bpmn.model.Process process, TaskWithFieldExtensions task, List<FieldExtension> fieldExtensions, List<ValidationError> errors) { boolean keyDefined = false; for (FieldExtension fieldExtension : fieldExtensions) { String fieldName = fieldExtension.getFieldName(); String fieldValue = fieldExtension.getStringValue(); if (fieldName.equals("decisionTableReferenceKey") && fieldValue != null && fieldValue.length() > 0) { keyDefined = true; } } if (!keyDefined) { addError(errors, Problems.DMN_TASK_NO_KEY, process, task, "No decision table reference key is defined on the dmn activity"); } }
protected void validateFieldDeclarationsForShell(org.activiti.bpmn.model.Process process, TaskWithFieldExtensions task, List<FieldExtension> fieldExtensions, List<ValidationError> errors) { boolean shellCommandDefined = false; for (FieldExtension fieldExtension : fieldExtensions) { String fieldName = fieldExtension.getFieldName(); String fieldValue = fieldExtension.getStringValue(); if (fieldName.equals("command")) { shellCommandDefined = true; } if ((fieldName.equals("wait") || fieldName.equals("redirectError") || fieldName.equals("cleanEnv")) && !fieldValue.toLowerCase().equals("true") && !fieldValue.toLowerCase().equals("false")) { addError(errors, Problems.SHELL_TASK_INVALID_PARAM, process, task, "Undefined parameter value for shell field"); } } if (!shellCommandDefined) { addError(errors, Problems.SHELL_TASK_NO_COMMAND, process, task, "No shell command is defined on the shell activity"); } }
protected void setPropertyFieldValue(String name, ServiceTask task, ObjectNode propertiesNode) { for (FieldExtension extension : task.getFieldExtensions()) { if (name.substring(8).equalsIgnoreCase(extension.getFieldName())) { if (StringUtils.isNotEmpty(extension.getStringValue())) { setPropertyValue(name, extension.getStringValue(), propertiesNode); } else if (StringUtils.isNotEmpty(extension.getExpression())) { setPropertyValue(name, extension.getExpression(), propertiesNode); } } } }
protected void addFieldExtensions(List<FieldExtension> extensions, ObjectNode propertiesNode) { ObjectNode fieldExtensionsNode = objectMapper.createObjectNode(); ArrayNode itemsNode = objectMapper.createArrayNode(); for (FieldExtension extension : extensions) { ObjectNode propertyItemNode = objectMapper.createObjectNode(); propertyItemNode.put(PROPERTY_SERVICETASK_FIELD_NAME, extension.getFieldName()); if (StringUtils.isNotEmpty(extension.getStringValue())) { propertyItemNode.put(PROPERTY_SERVICETASK_FIELD_STRING_VALUE, extension.getStringValue()); } if (StringUtils.isNotEmpty(extension.getExpression())) { propertyItemNode.put(PROPERTY_SERVICETASK_FIELD_EXPRESSION, extension.getExpression()); } itemsNode.add(propertyItemNode); } fieldExtensionsNode.set("fields", itemsNode); propertiesNode.set(PROPERTY_SERVICETASK_FIELDS, fieldExtensionsNode); }
if (StringUtils.isNotEmpty(fieldExtension.getStringValue()) || StringUtils.isNotEmpty(fieldExtension.getExpression())) { BpmnXMLUtil.writeDefaultAttribute(ATTRIBUTE_FIELD_NAME, fieldExtension.getFieldName(), xtw); if (StringUtils.isNotEmpty(fieldExtension.getStringValue())) { xtw.writeStartElement(ACTIVITI_EXTENSIONS_PREFIX, ELEMENT_FIELD_STRING, ACTIVITI_EXTENSIONS_NAMESPACE); xtw.writeCData(fieldExtension.getStringValue()); } else { xtw.writeStartElement(ACTIVITI_EXTENSIONS_PREFIX, ATTRIBUTE_FIELD_EXPRESSION, ACTIVITI_EXTENSIONS_NAMESPACE);
protected void setPropertyFieldValue(String propertyName, String fieldName, ServiceTask task, ObjectNode propertiesNode) { for (FieldExtension extension : task.getFieldExtensions()) { if (fieldName.equalsIgnoreCase(extension.getFieldName())) { if (StringUtils.isNotEmpty(extension.getStringValue())) { setPropertyValue(propertyName, extension.getStringValue(), propertiesNode); } else if (StringUtils.isNotEmpty(extension.getExpression())) { setPropertyValue(propertyName, extension.getExpression(), propertiesNode); } } } }
protected ActivityBehavior createCamelActivityBehavior(TaskWithFieldExtensions task, List<FieldExtension> fieldExtensions) { try { Class<?> theClass = null; FieldExtension behaviorExtension = null; for (FieldExtension fieldExtension : fieldExtensions) { if ("camelBehaviorClass".equals(fieldExtension.getFieldName()) && StringUtils.isNotEmpty(fieldExtension.getStringValue())) { theClass = Class.forName(fieldExtension.getStringValue()); behaviorExtension = fieldExtension; break; } } if (behaviorExtension != null) { fieldExtensions.remove(behaviorExtension); } if (theClass == null) { // Default Camel behavior class theClass = Class.forName("org.activiti.camel.impl.CamelBehaviorDefaultImpl"); } List<FieldDeclaration> fieldDeclarations = createFieldDeclarations(fieldExtensions); addExceptionMapAsFieldDeclaration(fieldDeclarations, task.getMapExceptions()); return (ActivityBehavior) ClassDelegate.defaultInstantiateDelegate( theClass, fieldDeclarations); } catch (ClassNotFoundException e) { throw new ActivitiException("Could not find org.activiti.camel.CamelBehavior: ", e); } }
public List<FieldDeclaration> createFieldDeclarations(List<FieldExtension> fieldList) { List<FieldDeclaration> fieldDeclarations = new ArrayList<FieldDeclaration>(); for (FieldExtension fieldExtension : fieldList) { FieldDeclaration fieldDeclaration = null; if (StringUtils.isNotEmpty(fieldExtension.getExpression())) { fieldDeclaration = new FieldDeclaration(fieldExtension.getFieldName(), Expression.class.getName(), expressionManager.createExpression(fieldExtension.getExpression())); } else { fieldDeclaration = new FieldDeclaration(fieldExtension.getFieldName(), Expression.class.getName(), new FixedValue(fieldExtension.getStringValue())); } fieldDeclarations.add(fieldDeclaration); } return fieldDeclarations; }
ObjectNode fieldNode = objectMapper.createObjectNode(); fieldNode.put(PROPERTY_FIELD_NAME, fieldExtension.getFieldName()); if (StringUtils.isNotEmpty(fieldExtension.getStringValue())) { fieldNode.put(PROPERTY_FIELD_STRING_VALUE, fieldExtension.getStringValue());
/** * Creates an {@link Expression} for the {@link FieldExtension}. */ public static Expression createExpressionForField(FieldExtension fieldExtension) { if (StringUtils.isNotEmpty(fieldExtension.getExpression())) { ExpressionManager expressionManager = Context.getProcessEngineConfiguration().getExpressionManager(); return expressionManager.createExpression(fieldExtension.getExpression()); } else { return new FixedValue(fieldExtension.getStringValue()); } }
fieldExtension.setFieldName(nameNode.asText()); fieldExtension.setStringValue(getValueAsString(PROPERTY_FIELD_STRING_VALUE, fieldNode)); if (StringUtils.isEmpty(fieldExtension.getStringValue())) { fieldExtension.setStringValue(getValueAsString(PROPERTY_FIELD_STRING, fieldNode)); if (StringUtils.isEmpty(fieldExtension.getStringValue())) { fieldExtension.setExpression(getValueAsString(PROPERTY_FIELD_EXPRESSION, fieldNode));
for (FieldExtension fieldExtension : serviceTask.getFieldExtensions()) { if (PROPERTY_DECISIONTABLE_REFERENCE_KEY.equals(fieldExtension.getFieldName()) && decisionTableKeyMap != null && decisionTableKeyMap.containsKey(fieldExtension.getStringValue())) { ModelInfo modelInfo = decisionTableKeyMap.get(fieldExtension.getStringValue()); decisionReferenceNode.put("id", modelInfo.getId()); decisionReferenceNode.put("name", modelInfo.getName());
protected void validateFieldDeclarationsForDmn(org.activiti.bpmn.model.Process process, TaskWithFieldExtensions task, List<FieldExtension> fieldExtensions, List<ValidationError> errors) { boolean keyDefined = false; for (FieldExtension fieldExtension : fieldExtensions) { String fieldName = fieldExtension.getFieldName(); String fieldValue = fieldExtension.getStringValue(); if (fieldName.equals("decisionTableReferenceKey") && fieldValue != null && fieldValue.length() > 0) { keyDefined = true; } } if (!keyDefined) { addError(errors, Problems.DMN_TASK_NO_KEY, process, task, "No decision table reference key is defined on the dmn activity"); } }
protected void validateFieldDeclarationsForShell(org.activiti.bpmn.model.Process process, TaskWithFieldExtensions task, List<FieldExtension> fieldExtensions, List<ValidationError> errors) { boolean shellCommandDefined = false; for (FieldExtension fieldExtension : fieldExtensions) { String fieldName = fieldExtension.getFieldName(); String fieldValue = fieldExtension.getStringValue(); if (fieldName.equals("command")) { shellCommandDefined = true; } if ((fieldName.equals("wait") || fieldName.equals("redirectError") || fieldName.equals("cleanEnv")) && !fieldValue.toLowerCase().equals("true") && !fieldValue.toLowerCase().equals("false")) { addError(errors, Problems.SHELL_TASK_INVALID_PARAM, process, task, "Undefined parameter value for shell field"); } } if (!shellCommandDefined) { addError(errors, Problems.SHELL_TASK_NO_COMMAND, process, task, "No shell command is defined on the shell activity"); } }
protected void setPropertyFieldValue(String name, ServiceTask task, ObjectNode propertiesNode) { for (FieldExtension extension : task.getFieldExtensions()) { if (name.substring(8).equalsIgnoreCase(extension.getFieldName())) { if (StringUtils.isNotEmpty(extension.getStringValue())) { setPropertyValue(name, extension.getStringValue(), propertiesNode); } else if (StringUtils.isNotEmpty(extension.getExpression())) { setPropertyValue(name, extension.getExpression(), propertiesNode); } } } }
protected void validateFieldDeclarationsForShell(BpmnParse bpmnParse, Task task, List<FieldExtension> fieldExtensions) { boolean shellCommandDefined = false; for (FieldExtension fieldExtension : fieldExtensions) { String fieldName = fieldExtension.getFieldName(); String fieldValue = fieldExtension.getStringValue(); shellCommandDefined |= fieldName.equals("command"); if ((fieldName.equals("wait") || fieldName.equals("redirectError") || fieldName.equals("cleanEnv")) && !fieldValue.toLowerCase().equals("true") && !fieldValue.toLowerCase().equals("false")) { bpmnParse.getBpmnModel().addProblem("undefined value for shell " + fieldName + " parameter :" + fieldValue.toString() + ".", task); } } if (!shellCommandDefined) { bpmnParse.getBpmnModel().addProblem("No shell command is defined on the shell activity", task); } }
protected void setPropertyFieldValue(String propertyName, String fieldName, ServiceTask task, ObjectNode propertiesNode) { for (FieldExtension extension : task.getFieldExtensions()) { if (fieldName.equalsIgnoreCase(extension.getFieldName())) { if (StringUtils.isNotEmpty(extension.getStringValue())) { setPropertyValue(propertyName, extension.getStringValue(), propertiesNode); } else if (StringUtils.isNotEmpty(extension.getExpression())) { setPropertyValue(propertyName, extension.getExpression(), propertiesNode); } } } }
public List<FieldDeclaration> createFieldDeclarations(List<FieldExtension> fieldList) { List<FieldDeclaration> fieldDeclarations = new ArrayList<FieldDeclaration>(); for (FieldExtension fieldExtension : fieldList) { FieldDeclaration fieldDeclaration = null; if (StringUtils.isNotEmpty(fieldExtension.getExpression())) { fieldDeclaration = new FieldDeclaration(fieldExtension.getFieldName(), Expression.class.getName(), expressionManager.createExpression(fieldExtension.getExpression())); } else { fieldDeclaration = new FieldDeclaration(fieldExtension.getFieldName(), Expression.class.getName(), new FixedValue(fieldExtension.getStringValue())); } fieldDeclarations.add(fieldDeclaration); } return fieldDeclarations; }
public List<FieldDeclaration> createFieldDeclarations(List<FieldExtension> fieldList) { List<FieldDeclaration> fieldDeclarations = new ArrayList<FieldDeclaration>(); for (FieldExtension fieldExtension : fieldList) { FieldDeclaration fieldDeclaration = null; if (StringUtils.isNotEmpty(fieldExtension.getExpression())) { fieldDeclaration = new FieldDeclaration(fieldExtension.getFieldName(), Expression.class.getName(), expressionManager.createExpression(fieldExtension.getExpression())); } else { fieldDeclaration = new FieldDeclaration(fieldExtension.getFieldName(), Expression.class.getName(), new FixedValue(fieldExtension.getStringValue())); } fieldDeclarations.add(fieldDeclaration); } return fieldDeclarations; }
/** * Creates an {@link Expression} for the {@link FieldExtension}. */ public static Expression createExpressionForField(FieldExtension fieldExtension) { if (StringUtils.isNotEmpty(fieldExtension.getExpression())) { ExpressionManager expressionManager = Context.getProcessEngineConfiguration().getExpressionManager(); return expressionManager.createExpression(fieldExtension.getExpression()); } else { return new FixedValue(fieldExtension.getStringValue()); } }