Skip to content

Commit

Permalink
fix(plc4go/codgen): fixed some issues in GoLanguageTemplateHelper
Browse files Browse the repository at this point in the history
  • Loading branch information
sruehl committed Nov 1, 2021
1 parent 53e2bff commit c7fe9db
Showing 1 changed file with 34 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1157,15 +1157,16 @@ public String getVariableName(Field field) {
return name;
}
}
if(curField.isTypedField()) {
final TypedField typedField = curField.asTypedField().get();
if(typedField.getType().isComplexTypeReference()) {
final ComplexTypeReference complexTypeReference = typedField.getType().asComplexTypeReference().get();
for (Term param : complexTypeReference.getParams().orElse(Collections.emptyList())) {
if (param.contains(name)) {
return name;
}
}
List<Term> params = field.asTypedField()
.map(typedField -> typedField.getType().asComplexTypeReference()
.map(ComplexTypeReference::getParams)
.map(terms -> terms.orElse(Collections.emptyList()))
.orElse(Collections.emptyList())
)
.orElse(Collections.emptyList());
for (Term param : params) {
if (param.contains(name)) {
return name;
}
}
}
Expand All @@ -1180,19 +1181,17 @@ public boolean needsVariable(ArrayField field, String variableName, boolean seri
return true;
}
}
if(field.isTypedField()) {
final TypedField typedField = field.asTypedField().get();
if (typedField.getType().isComplexTypeReference()) {
final ComplexTypeReference complexTypeReference = typedField.getType().asComplexTypeReference().get();
List<Term> fieldParams = complexTypeReference.getParams().orElse(Collections.emptyList());
for (Term param : fieldParams) {
if (param.contains(variableName)) {
return true;
}
}
}
}
return false;
return field.asTypedField()
.map(typedField -> typedField.getType().asComplexTypeReference()
.map(complexTypeReference -> complexTypeReference.getParams()
.map(params -> params.stream()
.anyMatch(param -> param.contains(variableName))
)
.orElse(false)
)
.orElse(false)
)
.orElse(false);
}

/**
Expand Down Expand Up @@ -1241,30 +1240,28 @@ public boolean requiresStartPosAndCurPos() {
}

public boolean requiresVariable(Field curField, String variable) {
if (curField instanceof ArrayField) {
if (curField.isArrayField()) {
ArrayField arrayField = (ArrayField) curField;
if (arrayField.getLoopExpression().contains(variable)) {
return true;
}
} else if (curField instanceof OptionalField) {
} else if (curField.isOptionalField()) {
OptionalField optionalField = (OptionalField) curField;
if (optionalField.getConditionExpression().isPresent() && optionalField.getConditionExpression().orElseThrow(IllegalStateException::new).contains(variable)) {
return true;
}
}
if(curField.isTypedField()) {
final TypedField typedField = curField.asTypedField().get();
if (typedField.getType().isComplexTypeReference()) {
final ComplexTypeReference complexTypeReference = typedField.getType().asComplexTypeReference().get();
List<Term> fieldParams = complexTypeReference.getParams().orElse(Collections.emptyList());
for (Term param : fieldParams) {
if (param.contains(variable)) {
return true;
}
}
}
}
return false;
return curField.asTypedField()
.map(typedField -> typedField.getType().asComplexTypeReference()
.map(complexTypeReference -> complexTypeReference.getParams()
.map(params -> params.stream()
.anyMatch(param -> param.contains(variable))
)
.orElse(false)
)
.orElse(false)
)
.orElse(false);
}

public Term findTerm(Term baseTerm, String name) {
Expand Down

0 comments on commit c7fe9db

Please sign in to comment.