Skip to content

Commit

Permalink
changed field names of ExpressionTransformationResult
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathanlukas committed Jun 26, 2023
1 parent 4f04777 commit 996c30d
Show file tree
Hide file tree
Showing 20 changed files with 49 additions and 62 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,31 @@
import java.util.regex.Pattern;

public class ExpressionTransformationResult {
private String oldExpression;
private String newExpression;

private static Pattern methodInvocationPattern = Pattern.compile("\\.[\\w]*\\(.*\\)");
private static Pattern executionPattern = Pattern.compile("execution\\.");

public String getOldExpression() {
return oldExpression;
}

public void setOldExpression(String oldExpression) {
this.oldExpression = oldExpression;
private static final Pattern methodInvocationPattern = Pattern.compile("\\.[\\w]*\\(.*\\)");
private static final Pattern executionPattern = Pattern.compile("execution\\.");
private final String juelExpression;
private final String feelExpression;

public ExpressionTransformationResult(String oldExpression, String newExpression) {
this.juelExpression = oldExpression;
this.feelExpression = newExpression;
}

public String getNewExpression() {
return newExpression;
public String getJuelExpression() {
return juelExpression;
}

public void setNewExpression(String newExpression) {
this.newExpression = newExpression;
public String getFeelExpression() {
return feelExpression;
}

public Boolean hasMethodInvocation() {
Matcher m = methodInvocationPattern.matcher(oldExpression);
Matcher m = methodInvocationPattern.matcher(juelExpression);
return m.find();
}

public Boolean hasExecution() {
Matcher m = executionPattern.matcher(oldExpression);
Matcher m = executionPattern.matcher(juelExpression);
return m.find();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,36 +11,33 @@ public class ExpressionTransformer {

private ExpressionTransformer() {}

public static ExpressionTransformationResult transform(final String expression) {
if (expression == null) {
public static ExpressionTransformationResult transform(final String juelExpression) {
if (juelExpression == null) {
return null;
}
String transform = INSTANCE.doTransform(expression);
ExpressionTransformationResult result = new ExpressionTransformationResult();
result.setOldExpression(expression);
result.setNewExpression(transform);
return result;
String transform = INSTANCE.doTransform(juelExpression);
return new ExpressionTransformationResult(juelExpression, transform);
}

private String doTransform(final String expression) {
if (expression == null) {
private String doTransform(final String juelExpression) {
if (juelExpression == null) {
return null;
}
if (expression.length() == 0) {
if (juelExpression.length() == 0) {
return "=null";
}
// split into expressions and non-expressions
List<String> nonExpressions =
Arrays.stream(expression.split("(#|\\$)\\{.*}"))
Arrays.stream(juelExpression.split("(#|\\$)\\{.*}"))
.map(String::trim)
.filter(s -> s.length() > 0)
.collect(Collectors.toList());
if (nonExpressions.size() == 1
&& expression.trim().length() == nonExpressions.get(0).length()) {
return expression;
&& juelExpression.trim().length() == nonExpressions.get(0).length()) {
return juelExpression;
}
List<String> expressions =
Arrays.stream(expression.split("(#|\\$)\\{|}"))
Arrays.stream(juelExpression.split("(#|\\$)\\{|}"))
.map(String::trim)
.filter(s -> s.length() > 0)
.map(s -> nonExpressions.contains(s) ? "\"" + s + "\"" : handleExpression(s))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -521,8 +521,8 @@ private static Map<String, String> supportedAttributeExpression(
private static Map<String, String> expressionTransformationResult(
ExpressionTransformationResult transformationResult) {
return ContextBuilder.builder()
.entry("oldExpression", transformationResult.getOldExpression())
.entry("newExpression", transformationResult.getNewExpression())
.entry("oldExpression", transformationResult.getJuelExpression())
.entry("newExpression", transformationResult.getFeelExpression())
.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ protected final void visitBpmnElement(DomElementVisitorContext context) {
ExpressionTransformationResult transformationResult = transformTimer(context);
context.addConversion(
AbstractCatchEventConvertible.class,
con -> setNewExpression(con, transformationResult.getNewExpression()));
con -> setNewExpression(con, transformationResult.getFeelExpression()));
if (!Objects.equals(
transformationResult.getNewExpression(), transformationResult.getOldExpression())) {
transformationResult.getFeelExpression(), transformationResult.getJuelExpression())) {
context.addMessage(MessageFactory.timerExpressionMapped(transformationResult));
}
}
Expand Down Expand Up @@ -61,7 +61,7 @@ protected boolean isEventSubprocess(DomElement element) {
protected Message cannotBeConvertedMessage(DomElementVisitorContext context) {
return MessageFactory.timerExpressionNotSupported(
elementNameForMessage(context.getElement()),
transformTimer(context).getNewExpression(),
transformTimer(context).getFeelExpression(),
elementNameForMessage(context.getElement().getParentElement().getParentElement()),
context.getProperties().getPlatformVersion());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ protected void visitBpmnElement(DomElementVisitorContext context) {
conversion ->
conversion
.getBpmnMultiInstanceLoopCharacteristics()
.setCompletionCondition(transformationResult.getNewExpression()));
.setCompletionCondition(transformationResult.getFeelExpression()));
Message message;
if (transformationResult.hasExecution()) {
message = MessageFactory.completionConditionExecution(transformationResult);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ protected void visitBpmnElement(DomElementVisitorContext context) {
ExpressionTransformer.transform(expression);
context.addConversion(
SequenceFlowConvertible.class,
conversion -> conversion.setConditionExpression(transformationResult.getNewExpression()));
conversion -> conversion.setConditionExpression(transformationResult.getFeelExpression()));
if (transformationResult.hasExecution()) {
context.addMessage(MessageFactory.conditionExpressionExecution(transformationResult));
} else if (transformationResult.hasMethodInvocation()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ protected void postCreationVisitor(DomElementVisitorContext context) {
conversion ->
conversion
.getZeebeCalledElement()
.setProcessId(transformationResult.getNewExpression()));
.setProcessId(transformationResult.getFeelExpression()));
context.addMessage(
MessageFactory.calledElement(CALLED_ELEMENT, localName(), transformationResult));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ protected Message visitSupportedAttribute(DomElementVisitorContext context, Stri
userTaskConversion ->
userTaskConversion
.getZeebeAssignmentDefinition()
.setAssignee(transformationResult.getNewExpression()));
.setAssignee(transformationResult.getFeelExpression()));
return MessageFactory.assignee(
attributeLocalName(), context.getElement().getLocalName(), transformationResult);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ protected Message visitSupportedAttribute(DomElementVisitorContext context, Stri
userTaskConversion ->
userTaskConversion
.getZeebeAssignmentDefinition()
.setCandidateGroups(candidateGroups.getNewExpression()));
.setCandidateGroups(candidateGroups.getFeelExpression()));
return MessageFactory.candidateGroups(candidateGroups);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ protected Message visitSupportedAttribute(DomElementVisitorContext context, Stri
conversion
.getBpmnMultiInstanceLoopCharacteristics()
.getZeebeLoopCharacteristics()
.setInputCollection(transformationResult.getNewExpression()));
.setInputCollection(transformationResult.getFeelExpression()));
context.addMessage(MessageFactory.collectionHint());
Message message;
if (transformationResult.hasExecution()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ protected Message visitSupportedAttribute(DomElementVisitorContext context, Stri
conversion ->
conversion
.getZeebeCalledDecision()
.setDecisionId(transformationResult.getNewExpression()));
.setDecisionId(transformationResult.getFeelExpression()));
return MessageFactory.decisionRef(
attributeLocalName(), context.getElement().getLocalName(), transformationResult);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ protected Message visitSupportedAttribute(DomElementVisitorContext context, Stri
ExpressionTransformationResult dueDate = ExpressionTransformer.transform(attribute);
context.addConversion(
UserTaskConvertible.class,
conv -> conv.getZeebeTaskSchedule().setDueDate(dueDate.getNewExpression()));
conv -> conv.getZeebeTaskSchedule().setDueDate(dueDate.getFeelExpression()));
return MessageFactory.dueDate(dueDate);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ protected Message visitSupportedAttribute(DomElementVisitorContext context, Stri
ExpressionTransformationResult followUpDate = ExpressionTransformer.transform(attribute);
context.addConversion(
UserTaskConvertible.class,
conv -> conv.getZeebeTaskSchedule().setFollowUpDate(followUpDate.getNewExpression()));
conv -> conv.getZeebeTaskSchedule().setFollowUpDate(followUpDate.getFeelExpression()));
return MessageFactory.followUpDate(followUpDate);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ protected Message visitSupportedAttribute(DomElementVisitorContext context, Stri
conversion ->
conversion
.getZeebeFormDefinition()
.setFormKey(transformationResult.getNewExpression()));
.setFormKey(transformationResult.getFeelExpression()));
return MessageFactory.formRef(
attributeLocalName(), context.getElement().getLocalName(), transformationResult);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ protected Message visitCamundaElement(DomElementVisitorContext context) {
conversion ->
conversion.addZeebeIoMapping(
getDirection(context.getElement()),
transformationResult.getNewExpression(),
transformationResult.getFeelExpression(),
target));
return MessageFactory.inputOutputParameter(localName(), target, transformationResult);
}
Expand All @@ -84,10 +84,7 @@ private ExpressionTransformationResult createResult(DomElement element) {
String source = element.getAttribute("source");
String sourceExpression = element.getAttribute("sourceExpression");
if (source != null) {
ExpressionTransformationResult transformationResult = new ExpressionTransformationResult();
transformationResult.setOldExpression(source);
transformationResult.setNewExpression("=" + source);
return transformationResult;
return new ExpressionTransformationResult(source, "=" + source);
} else if (sourceExpression != null) {
return ExpressionTransformer.transform(sourceExpression);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ protected Message visitCamundaElement(DomElementVisitorContext context) {
AbstractDataMapperConvertible.class,
abstractTaskConversion ->
abstractTaskConversion.addZeebeIoMapping(
direction, transformationResult.getNewExpression(), name));
direction, transformationResult.getFeelExpression(), name));
Message resultMessage;
if (transformationResult.hasExecution()) {
resultMessage =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ protected void postCreationVisitor(DomElementVisitorContext context) {
String errorCode = context.getElement().getAttribute(BPMN, "errorCode");
ExpressionTransformationResult expressionTransformationResult =
ExpressionTransformer.transform(errorCode);
if (expressionTransformationResult.getNewExpression().startsWith("=")) {
if (expressionTransformationResult.getFeelExpression().startsWith("=")) {
context.addMessage(MessageFactory.errorCodeNoExpression());
}
context.addConversion(
ErrorConvertible.class,
c -> c.setErrorCode(expressionTransformationResult.getNewExpression()));
c -> c.setErrorCode(expressionTransformationResult.getFeelExpression()));
// this can be enabled as soon as error codes can be expressions
/*
if (SemanticVersion.parse(context.getProperties().getPlatformVersion()).ordinal()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ protected void postCreationVisitor(DomElementVisitorContext context) {
String escalationCode = context.getElement().getAttribute(BPMN, "escalationCode");
ExpressionTransformationResult expressionTransformationResult =
ExpressionTransformer.transform(escalationCode);
if (expressionTransformationResult.getNewExpression().startsWith("=")) {
if (expressionTransformationResult.getFeelExpression().startsWith("=")) {
context.addMessage(MessageFactory.escalationCodeNoExpression());
}
// this can be enabled as soon as escalation codes can be expressions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public Stream<DynamicContainer> shouldResolveExpression() {
.map(
data ->
DynamicContainer.dynamicContainer(
"Expression: " + data.getResult().getOldExpression(), data.getTests()));
"Expression: " + data.getResult().getJuelExpression(), data.getTests()));
}

private static class ExpressionTestBuilder {
Expand All @@ -92,7 +92,7 @@ public ExpressionTestBuilder isMappedTo(String expectedResult) {
tests.add(
DynamicTest.dynamicTest(
"Expect Result: '" + expectedResult + "'",
() -> assertThat(result.getNewExpression()).isEqualTo(expectedResult)));
() -> assertThat(result.getFeelExpression()).isEqualTo(expectedResult)));
return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,7 @@ private static String random() {
}

private static ExpressionTransformationResult result() {
ExpressionTransformationResult result = new ExpressionTransformationResult();
result.setNewExpression("=test");
result.setOldExpression("${test}");
return result;
return new ExpressionTransformationResult("${test}", "=test");
}

@Test
Expand Down

0 comments on commit 996c30d

Please sign in to comment.