You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2022/03/09 14:19:31 UTC
[plc4x] branch develop updated: fix(codegen): switch to lookup properties in parents too
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/develop by this push:
new 9c15f0d fix(codegen): switch to lookup properties in parents too
9c15f0d is described below
commit 9c15f0d70c73275b72f4c109499f25baf181b41d
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed Mar 9 15:19:20 2022 +0100
fix(codegen): switch to lookup properties in parents too
---
.../language/mspec/expression/ExpressionStringListener.java | 3 +--
.../mspec/model/definitions/DefaultComplexTypeDefinition.java | 10 ++++++++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/expression/ExpressionStringListener.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/expression/ExpressionStringListener.java
index 0b99ef2..3d97662 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/expression/ExpressionStringListener.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/expression/ExpressionStringListener.java
@@ -154,8 +154,7 @@ public class ExpressionStringListener extends ExpressionBaseListener {
.map(DefaultTypedField.class::cast);
// Check for other fields
if (propertyFieldByName.isEmpty()) {
- // TODO: do we need all fields from parent too?
- propertyFieldByName = complexTypeDefinition.getFields().stream()
+ propertyFieldByName = complexTypeDefinition.getAllFields().stream()
.filter(NamedField.class::isInstance)
.map(NamedField.class::cast)
.filter(namedField -> propertyName.equals(namedField.getName()))
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultComplexTypeDefinition.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultComplexTypeDefinition.java
index 88683f3..70ce3d1 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultComplexTypeDefinition.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultComplexTypeDefinition.java
@@ -124,6 +124,16 @@ public class DefaultComplexTypeDefinition extends DefaultTypeDefinition implemen
}
@Override
+ public List<Field> getAllFields() {
+ List<Field> fields = new LinkedList<>();
+ getParentType()
+ .map(ComplexTypeDefinition::getAllFields)
+ .map(fields::addAll);
+ fields.addAll(getFields());
+ return fields;
+ }
+
+ @Override
public List<PropertyField> getAllPropertyFields() {
List<PropertyField> fields = new LinkedList<>();
getParentType()