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>