/** * Checks whether a {@link String} seams to be a composite expression or not. In contrast to an eval expression * is the composite expression also allowed to consist of a combination of literal and eval expressions, e.g., * "Welcome ${customer.name} to our site". * * Note: If you just want to allow eval expression, then the expression must always start with "#{" or "${". * Use {@link #isExpression(String)} to conduct these kind of checks. * */ public static boolean isCompositeExpression(String text, ExpressionManager expressionManager) { return !expressionManager.createExpression(text).isLiteralText(); }
protected Expression parseExpression(Element parent, String name) { Element value = parent.element(name); if (value != null) { String expressionText = value.getText().trim(); return expressionManager.createExpression(expressionText); } return null; }
protected CaseControlRule initializeCaseControlRule(ConditionExpression condition, CmmnHandlerContext context) { Expression expression = null; if (condition != null) { String rule = condition.getText(); if (rule != null && !rule.isEmpty()) { ExpressionManager expressionManager = context.getExpressionManager(); expression = expressionManager.createExpression(rule); } } return new CaseControlRuleImpl(expression); }
protected ParameterValueProvider createParameterValueProvider(Object value, ExpressionManager expressionManager) { if (value == null) { return new NullValueProvider(); } else if (value instanceof String) { Expression expression = expressionManager.createExpression((String) value); return new ElValueProvider(expression); } else { return new ConstantValueProvider(value); } }
protected ParameterValueProvider createParameterValueProvider(Object value, ExpressionManager expressionManager) { if (value == null) { return new NullValueProvider(); } else if (value instanceof String) { Expression expression = expressionManager.createExpression((String) value); return new ElValueProvider(expression); } else { return new ConstantValueProvider(value); } }
protected void initializeTaskDefinitionCandidateUsers(CmmnElement element, TaskDefinition taskDefinition, CmmnHandlerContext context) { HumanTask definition = getDefinition(element); ExpressionManager expressionManager = context.getExpressionManager(); List<String> candidateUsers = definition.getCamundaCandidateUsersList(); for (String candidateUser : candidateUsers) { Expression candidateUserExpression = expressionManager.createExpression(candidateUser); taskDefinition.addCandidateUserIdExpression(candidateUserExpression); } }
protected void parseHumanPerformerResourceAssignment(Element performerElement, TaskDefinition taskDefinition) { Element raeElement = performerElement.element(RESOURCE_ASSIGNMENT_EXPR); if (raeElement != null) { Element feElement = raeElement.element(FORMAL_EXPRESSION); if (feElement != null) { taskDefinition.setAssigneeExpression(expressionManager.createExpression(feElement.getText())); } } }
protected void initializeTaskDefinitionFormKey(CmmnElement element, TaskDefinition taskDefinition, CmmnHandlerContext context) { HumanTask definition = getDefinition(element); String formKey = definition.getCamundaFormKey(); if (formKey != null) { ExpressionManager expressionManager = context.getExpressionManager(); Expression formKeyExpression = expressionManager.createExpression(formKey); taskDefinition.setFormKey(formKeyExpression); } }
protected void initializeTaskDefinitionPriority(CmmnElement element, TaskDefinition taskDefinition, CmmnHandlerContext context) { HumanTask definition = getDefinition(element); String priority = definition.getCamundaPriority(); if (priority != null) { ExpressionManager expressionManager = context.getExpressionManager(); Expression priorityExpression = expressionManager.createExpression(priority); taskDefinition.setPriorityExpression(priorityExpression); } }
protected void initializeTaskDefinitionFormKey(CmmnElement element, TaskDefinition taskDefinition, CmmnHandlerContext context) { HumanTask definition = getDefinition(element); String formKey = definition.getCamundaFormKey(); if (formKey != null) { ExpressionManager expressionManager = context.getExpressionManager(); Expression formKeyExpression = expressionManager.createExpression(formKey); taskDefinition.setFormKey(formKeyExpression); } }
protected void parseHumanPerformerResourceAssignment(Element performerElement, TaskDefinition taskDefinition) { Element raeElement = performerElement.element(RESOURCE_ASSIGNMENT_EXPR); if (raeElement != null) { Element feElement = raeElement.element(FORMAL_EXPRESSION); if (feElement != null) { taskDefinition.setAssigneeExpression(expressionManager.createExpression(feElement.getText())); } } }
protected ParameterValueProvider createParameterValueProvider(String value, ExpressionManager expressionManager) { if (value == null) { return new NullValueProvider(); } else if (isCompositeExpression(value, expressionManager)) { Expression expression = expressionManager.createExpression(value); return new ElValueProvider(expression); } else { return new ConstantValueProvider(value); } }
protected void initializeTaskDefinitionName(CmmnElement element, TaskDefinition taskDefinition, CmmnHandlerContext context) { String name = getName(element); if (name == null) { HumanTask definition = getDefinition(element); name = definition.getName(); } if (name != null) { ExpressionManager expressionManager = context.getExpressionManager(); Expression nameExpression = expressionManager.createExpression(name); taskDefinition.setNameExpression(nameExpression); } }
public void testDecoratePriority() { // given String aPriority = "10"; Expression priorityExpression = expressionManager.createExpression(aPriority); taskDefinition.setPriorityExpression(priorityExpression); // when decorate(task, taskDecorator); // then assertEquals(Integer.parseInt(aPriority), task.getPriority()); }
public void testDecorateName() { // given String aTaskName = "A Task Name"; Expression nameExpression = expressionManager.createExpression(aTaskName); taskDefinition.setNameExpression(nameExpression); // when decorate(task, taskDecorator); // then assertEquals(aTaskName, task.getName()); }
public void testDecorateDescription() { // given String aDescription = "This is a Task"; Expression descriptionExpression = expressionManager.createExpression(aDescription); taskDefinition.setDescriptionExpression(descriptionExpression); // when decorate(task, taskDecorator); // then assertEquals(aDescription, task.getDescription()); }
public void testDecorateDescriptionFromVariable() { // given String aDescription = "This is a Task"; taskService.setVariable(task.getId(), "description", aDescription); Expression descriptionExpression = expressionManager.createExpression("${description}"); taskDefinition.setDescriptionExpression(descriptionExpression); // when decorate(task, taskDecorator); // then assertEquals(aDescription, task.getDescription()); }
public void testDecorateNameFromVariable() { // given String aTaskName = "A Task Name"; taskService.setVariable(task.getId(), "taskName", aTaskName); Expression nameExpression = expressionManager.createExpression("${taskName}"); taskDefinition.setNameExpression(nameExpression); // when decorate(task, taskDecorator); // then assertEquals(aTaskName, task.getName()); }
public void testDecorateDueDateFromVariable() { // given String aDueDate = "2014-06-01"; Date dueDate = DateTimeUtil.parseDate(aDueDate); taskService.setVariable(task.getId(), "dueDate", dueDate); Expression dueDateExpression = expressionManager.createExpression("${dueDate}"); taskDefinition.setDueDateExpression(dueDateExpression); // when decorate(task, taskDecorator); // then assertEquals(dueDate, task.getDueDate()); }
public void testDecorateFollowUpDateFromVariable() { // given String aFollowUpDateDate = "2014-06-01"; Date followUpDate = DateTimeUtil.parseDate(aFollowUpDateDate); taskService.setVariable(task.getId(), "followUpDate", followUpDate); Expression followUpDateExpression = expressionManager.createExpression("${followUpDate}"); taskDefinition.setFollowUpDateExpression(followUpDateExpression); // when decorate(task, taskDecorator); // then assertEquals(followUpDate, task.getFollowUpDate()); }