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 92e29da  fix(codegen): fix several small issues
92e29da is described below

commit 92e29dad9832fa6b4fd3cea6d85be43fd3092708
Author: Sebastian Rühl <[email protected]>
AuthorDate: Sun Oct 3 14:55:31 2021 +0200

    fix(codegen): fix several small issues
---
 .../language/go/GoLanguageTemplateHelper.java      |  4 ++--
 .../apache/plc4x/language/go/utils/FieldUtils.java |  2 +-
 .../resources/templates/java/io-template.java.ftlh |  2 +-
 .../mspec/parser/MessageFormatListener.java        |  9 ++++++---
 protocols/knxnetip/pom.xml                         |  4 ++++
 .../plc4x/protocol/knxnetip/KnxNetIpProtocol.java  | 16 ++++++++++------
 protocols/opcua/pom.xml                            | 22 ++--------------------
 7 files changed, 26 insertions(+), 33 deletions(-)

diff --git 
a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
 
b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
index a57d1ec..55834d3 100644
--- 
a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
+++ 
b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
@@ -1111,7 +1111,7 @@ public class GoLanguageTemplateHelper extends 
BaseFreemarkerLanguageTemplateHelp
                     }
                 } else if (curField instanceof OptionalField) {
                     OptionalField optionalField = (OptionalField) curField;
-                    if (optionalField.getConditionExpression().isPresent() && 
optionalField.getConditionExpression().get().contains(name)) {
+                    if (optionalField.getConditionExpression().isPresent() && 
optionalField.getConditionExpression().orElseThrow(IllegalStateException::new).contains(name))
 {
                         return name;
                     }
                 } else if (curField instanceof SwitchField) {
@@ -1213,7 +1213,7 @@ public class GoLanguageTemplateHelper extends 
BaseFreemarkerLanguageTemplateHelp
             }
         } else if (curField instanceof OptionalField) {
             OptionalField optionalField = (OptionalField) curField;
-            if (optionalField.getConditionExpression().isPresent() && 
optionalField.getConditionExpression().get().contains(variable)) {
+            if (optionalField.getConditionExpression().isPresent() && 
optionalField.getConditionExpression().orElseThrow(IllegalStateException::new).contains(variable))
 {
                 return true;
             }
         }
diff --git 
a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/utils/FieldUtils.java
 
b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/utils/FieldUtils.java
index 427161e..7040226 100644
--- 
a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/utils/FieldUtils.java
+++ 
b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/utils/FieldUtils.java
@@ -66,7 +66,7 @@ public class FieldUtils {
             }
             case "optional": {
                 OptionalField optionalField = (OptionalField) field;
-                return optionalField.getConditionExpression().isPresent() && 
optionalField.getConditionExpression().get().contains(label);
+                return optionalField.getConditionExpression().isPresent() && 
optionalField.getConditionExpression().orElseThrow(IllegalStateException::new).contains(label);
             }
             case "padding": {
                 PaddingField paddingField = (PaddingField) field;
diff --git 
a/code-generation/language-java/src/main/resources/templates/java/io-template.java.ftlh
 
b/code-generation/language-java/src/main/resources/templates/java/io-template.java.ftlh
index b3cadf1..3305725 100644
--- 
a/code-generation/language-java/src/main/resources/templates/java/io-template.java.ftlh
+++ 
b/code-generation/language-java/src/main/resources/templates/java/io-template.java.ftlh
@@ -449,7 +449,7 @@ public class ${type.name}IO implements <#if outputFlavor != 
"passive">MessageIO<
         curPos = readBuffer.getPos();
         try {
         </#if>
-        <#if optionalField.conditionExpression.present && 
optionalField.conditionExpression.get().contains("curPos")>
+        <#if optionalField.conditionExpression.present && 
optionalField.conditionExpression.orElseThrow().contains("curPos")>
         curPos = readBuffer.getPos();
         </#if>
         ${helper.getLanguageTypeNameForField(field)} ${optionalField.name} = 
null;
diff --git 
a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
 
b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
index 2455c5b..39838a4 100644
--- 
a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
+++ 
b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
@@ -282,8 +282,11 @@ public class MessageFormatListener extends 
MSpecBaseListener {
     public void enterOptionalField(MSpecParser.OptionalFieldContext ctx) {
         TypeReference type = getTypeReference(ctx.type);
         String name = getIdString(ctx.name);
-        String conditionExpressionString = getExprString(ctx.condition);
-        Term conditionExpression = 
getExpressionTerm(conditionExpressionString);
+        Term conditionExpression = null;
+        if (ctx.condition != null) {
+            String conditionExpressionString = getExprString(ctx.condition);
+            conditionExpression = getExpressionTerm(conditionExpressionString);
+        }
         MSpecParser.FieldDefinitionContext fieldDefinitionContext = 
(MSpecParser.FieldDefinitionContext) ctx.parent.parent;
         List<Term> params = getFieldParams(fieldDefinitionContext);
         Field field = new DefaultOptionalField(null, type, name, 
conditionExpression, params);
@@ -475,7 +478,7 @@ public class MessageFormatListener extends 
MSpecBaseListener {
             
SimpleTypeReference.SimpleBaseType.valueOf(ctx.base.getText().toUpperCase());
         // String types need an additional "encoding" field and length 
expression.
         if ((simpleBaseType == SimpleTypeReference.SimpleBaseType.STRING) ||
-                (simpleBaseType == 
SimpleTypeReference.SimpleBaseType.VSTRING)) {
+            (simpleBaseType == SimpleTypeReference.SimpleBaseType.VSTRING)) {
             if (simpleBaseType == SimpleTypeReference.SimpleBaseType.VSTRING) {
                 Term lengthExpression = 
getExpressionTerm(ctx.length.getText().substring(1, 
ctx.length.getText().length() - 1));
                 return new DefaultStringTypeReference(simpleBaseType, 
lengthExpression, "UTF-8");
diff --git a/protocols/knxnetip/pom.xml b/protocols/knxnetip/pom.xml
index 8563858..83def65 100644
--- a/protocols/knxnetip/pom.xml
+++ b/protocols/knxnetip/pom.xml
@@ -111,6 +111,10 @@
       <artifactId>plc4x-code-generation-protocol-base-mspec</artifactId>
       <version>0.10.0-SNAPSHOT</version>
     </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
 
     <!-- Generally used for the metadata generator to not pollute the 
classpath -->
     <dependency>
diff --git 
a/protocols/knxnetip/src/main/java/org/apache/plc4x/protocol/knxnetip/KnxNetIpProtocol.java
 
b/protocols/knxnetip/src/main/java/org/apache/plc4x/protocol/knxnetip/KnxNetIpProtocol.java
index e44a7f6..0211d9b 100644
--- 
a/protocols/knxnetip/src/main/java/org/apache/plc4x/protocol/knxnetip/KnxNetIpProtocol.java
+++ 
b/protocols/knxnetip/src/main/java/org/apache/plc4x/protocol/knxnetip/KnxNetIpProtocol.java
@@ -22,6 +22,8 @@ import 
org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageForma
 import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
 import 
org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.InputStream;
 import java.util.LinkedHashMap;
@@ -29,6 +31,8 @@ import java.util.Map;
 
 public class KnxNetIpProtocol implements Protocol {
 
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(KnxNetIpProtocol.class);
+
     @Override
     public String getName() {
         return "knxnetip";
@@ -36,27 +40,27 @@ public class KnxNetIpProtocol implements Protocol {
 
     @Override
     public Map<String, TypeDefinition> getTypeDefinitions() throws 
GenerationException {
-        System.out.println("Parsing: knxnetip.mspec");
+        LOGGER.info("Parsing: knxnetip.mspec");
         InputStream schemaInputStream = 
KnxNetIpProtocol.class.getResourceAsStream(
             "/protocols/knxnetip/knxnetip.mspec");
-        if(schemaInputStream == null) {
+        if (schemaInputStream == null) {
             throw new GenerationException("Error loading message-format schema 
for protocol '" + getName() + "'");
         }
         Map<String, TypeDefinition> typeDefinitionMap =
             new LinkedHashMap<>(new 
MessageFormatParser().parse(schemaInputStream));
 
-        System.out.println("Parsing: knx-master-data.mspec");
+        LOGGER.info("Parsing: knx-master-data.mspec");
         InputStream masterDataInputStream = 
KnxNetIpProtocol.class.getResourceAsStream(
             "/protocols/knxnetip/knx-master-data.mspec");
-        if(masterDataInputStream == null) {
+        if (masterDataInputStream == null) {
             throw new GenerationException("Error loading knx-master-data 
schema for protocol '" + getName() + "'");
         }
         typeDefinitionMap.putAll(new 
MessageFormatParser().parse(masterDataInputStream));
 
-        System.out.println("Parsing: device-info.mspec");
+        LOGGER.info("Parsing: device-info.mspec");
         InputStream deviceDataInputStream = 
KnxNetIpProtocol.class.getResourceAsStream(
             "/protocols/knxnetip/device-info.mspec");
-        if(deviceDataInputStream == null) {
+        if (deviceDataInputStream == null) {
             throw new GenerationException("Error loading device-info schema 
for protocol '" + getName() + "'");
         }
         typeDefinitionMap.putAll(new 
MessageFormatParser().parse(deviceDataInputStream));
diff --git a/protocols/opcua/pom.xml b/protocols/opcua/pom.xml
index dde9f94..95f378e 100644
--- a/protocols/opcua/pom.xml
+++ b/protocols/opcua/pom.xml
@@ -34,11 +34,11 @@
 
   <build>
     <plugins>
-      <!-- Fetch the master-data which will be used to translate manufacturer 
ids to readable names -->
       <plugin>
         <groupId>com.googlecode.maven-download-plugin</groupId>
         <artifactId>download-maven-plugin</artifactId>
         <executions>
+          <!-- Fetch the master-data which will be used to translate 
manufacturer ids to readable names -->
           <execution>
             <id>fetch-opc-datatypes</id>
             <phase>generate-resources</phase>
@@ -54,13 +54,7 @@
               <overwrite>true</overwrite>
             </configuration>
           </execution>
-        </executions>
-      </plugin>
-      <!-- Fetch the master-data which will be used to translate manufacturer 
ids to readable names -->
-      <plugin>
-        <groupId>com.googlecode.maven-download-plugin</groupId>
-        <artifactId>download-maven-plugin</artifactId>
-        <executions>
+          <!-- Fetch the master-data which will be used to translate 
manufacturer ids to readable names -->
           <execution>
             <id>fetch-opc-statuscodes</id>
             <phase>generate-resources</phase>
@@ -74,12 +68,6 @@
               <outputFileName>StatusCode.csv</outputFileName>
             </configuration>
           </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>com.googlecode.maven-download-plugin</groupId>
-        <artifactId>download-maven-plugin</artifactId>
-        <executions>
           <execution>
             <id>fetch-opc-discriminators</id>
             <phase>generate-resources</phase>
@@ -93,12 +81,6 @@
               <outputFileName>Opc.Ua.NodeSet2.Services.xml</outputFileName>
             </configuration>
           </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>com.googlecode.maven-download-plugin</groupId>
-        <artifactId>download-maven-plugin</artifactId>
-        <executions>
           <execution>
             <id>fetch-opc-services-enum</id>
             <phase>generate-resources</phase>

Reply via email to