package com.constellio.model.entities.workflows.definitions; import org.apache.commons.lang.StringUtils; import com.constellio.model.entities.workflows.execution.WorkflowExecution; public class BPMNProperty { private String fieldId; private String expressionValue; private String variableCode; public BPMNProperty(String fieldId, String expressionValue, String variableCode) { this.fieldId = fieldId; this.expressionValue = expressionValue; this.variableCode = variableCode; } public String getFieldId() { return fieldId; } public String getExpressionValue() { return expressionValue; } public String getVariableCode() { return variableCode; } public String getParsedExpression(WorkflowExecution execution) { String[] variableCodes = StringUtils.substringsBetween(expressionValue, "${", "}"); String[] variableValues = new String[variableCodes.length]; for (int i = 0; i < variableCodes.length; i++) { variableValues[i] = execution.getVariable(variableCodes[i]); } String parsedExpression = StringUtils.replaceEach(expressionValue, variableCodes, variableValues); return StringUtils.remove(StringUtils.remove(parsedExpression, "${"), "}"); } }