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 2021/09/24 19:13:31 UTC
[plc4x] 04/04: fix(java/codegen): virtual field handling
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
commit ef35531d5a872f29dccddb3a11a135b166958185
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri Sep 24 20:37:13 2021 +0200
fix(java/codegen): virtual field handling
---
.../org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java | 3 +++
1 file changed, 3 insertions(+)
diff --git a/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java b/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
index e12fd93..b7d8d3d 100644
--- a/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
+++ b/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
@@ -849,6 +849,9 @@ public class JavaLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHe
} else if (isVariableLiteralImplicitField(variableLiteral)) { // If we are accessing implicit fields, we need to rely on a local variable instead.
tracer = tracer.dive("implicit field");
return tracer + toSerializationExpression(getReferencedImplicitField(variableLiteral), getReferencedImplicitField(variableLiteral).getSerializeExpression(), serialzerArguments);
+ } else if (isVariableLiteralVirtualField(variableLiteral)) {
+ tracer = tracer.dive("virtual field");
+ return tracer + "_value." + toVariableExpressionRest(variableLiteral);
}
// The synthetic checksumRawData is a local field and should not be accessed as bean property.
boolean isSerializerArg = "checksumRawData".equals(variableLiteral.getName()) || "_value".equals(variableLiteral.getName()) || "element".equals(variableLiteral.getName()) || "size".equals(variableLiteral.getName());