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/10/27 12:26:36 UTC

[plc4x] branch feature/mspec-ng updated: fix(plc4j/codgen): avoid duplicating params

This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch feature/mspec-ng
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/feature/mspec-ng by this push:
     new 194cff3  fix(plc4j/codgen): avoid duplicating params
194cff3 is described below

commit 194cff3a56516bc6d2a3617e94d5447c6b97fbdf
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed Oct 27 14:26:24 2021 +0200

    fix(plc4j/codgen): avoid duplicating params
---
 .../org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java  | 6 ++++++
 1 file changed, 6 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 ea9d397..ea6fe40 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
@@ -379,6 +379,7 @@ public class JavaLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHe
             StringBuilder paramsString = new StringBuilder();
             ComplexTypeReference complexTypeReference = typeReference.asComplexTypeReference().orElseThrow(IllegalStateException::new);
             TypeDefinition typeDefinition = getTypeDefinitionForTypeReference(typeReference);
+            int parentParamIndex = -1;
             if (typeDefinition.isDiscriminatedChildTypeDefinition()) {
                 List<Term> parentParamTerms = typeDefinition.getParentType().getTypeReference().asComplexTypeReference()
                     .orElseThrow(() -> new IllegalStateException("Shouldn't happen as the parent must be complex"))
@@ -386,6 +387,7 @@ public class JavaLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHe
                     .orElse(Collections.emptyList());
                 ComplexTypeReference parentTypeReference = typeDefinition.getParentType().getTypeReference().asComplexTypeReference().orElseThrow(IllegalStateException::new);
                 for (int i = 0; i < parentParamTerms.size(); i++) {
+                    parentParamIndex++;
                     Term paramTerm = parentParamTerms.get(i);
                     paramsString
                         .append(", (")
@@ -396,6 +398,10 @@ public class JavaLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHe
             }
             List<Term> paramTerms = complexTypeReference.getParams().orElse(Collections.emptyList());
             for (int i = 0; i < paramTerms.size(); i++) {
+                if (i <= parentParamIndex) {
+                    // Ignore params that are part of the parent
+                    continue;
+                }
                 Term paramTerm = paramTerms.get(i);
                 paramsString
                     .append(", (")