You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2019/06/19 10:10:41 UTC
[plc4x] 02/02: - Major refactoring of the code generator -- Split
up the plugin and the imaginary format parser -- Renamed the imaginary
format parser to "MSpec" parser (Message Spec) -- Split up the java
template into a java template and a freemarker template base -- Moved the
modules that will be released separately into an external directory --
Changed the inheritance and versions of the modules staying in the main
plc4x repo back to 0.5.0-SNAPSHOT and included them back into the normal
build
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 8b94bfe9ae705e8a4d1e715de9302c71b8725d1d
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Wed Jun 19 12:10:29 2019 +0200
- Major refactoring of the code generator
-- Split up the plugin and the imaginary format parser
-- Renamed the imaginary format parser to "MSpec" parser (Message Spec)
-- Split up the java template into a java template and a freemarker template base
-- Moved the modules that will be released separately into an external directory
-- Changed the inheritance and versions of the modules staying in the main plc4x repo back to 0.5.0-SNAPSHOT and included them back into the normal build
---
Jenkinsfile | 2 +-
pom.xml | 1 +
sandbox/code-generation/driver-base-java/pom.xml | 2 +-
.../{ => external}/language-base/pom.xml | 7 ++
.../codegenerator}/language/LanguageOutput.java | 6 +-
.../{ => external}/plc4x-maven-plugin/pom.xml | 19 -----
.../plc4x-maven-plugin/src/it/settings.xml | 0
.../plc4x-maven-plugin/src/it/simple-it/pom.xml | 0
.../src/main/resources/test/protocol.dfdl.xsd | 0
.../src/it/simple-it/verify.groovy | 0
.../plc4x/plugins/codegenerator/GenerateMojo.java | 20 ++---
.../src/site/asciidoc/index.adoc | 0
.../src/site/asciidoc/message-format-language.adoc | 0
.../plugins/codegenerator/GenerateMojoTest.java | 0
.../test/projects/simple-embedded-schema/pom.xml | 0
.../src/main/resources/protocol.spec | 0
.../src/main/resources/template.ftlh | 0
.../src/test/resources/specs/s7.spec | 0
sandbox/code-generation/{ => external}/pom.xml | 16 +---
.../{ => external}/protocol-base/pom.xml | 8 ++
.../plugins/codegenerator}/protocol/Protocol.java | 14 ++--
.../{protocol-base => external/types-base}/pom.xml | 6 +-
.../codegenerator/types}/definitions/Argument.java | 4 +-
.../types}/definitions/ComplexTypeDefinition.java | 10 +--
.../DiscriminatedComplexTypeDefinition.java | 2 +-
.../types}/definitions/EnumTypeDefinition.java | 2 +-
.../types}/definitions/TypeDefinition.java | 2 +-
.../types}/exceptions/GenerationException.java | 2 +-
.../codegenerator/types}/fields/ArrayField.java | 4 +-
.../codegenerator/types}/fields/ConstField.java | 4 +-
.../types}/fields/DiscriminatorField.java | 2 +-
.../plugins/codegenerator/types}/fields/Field.java | 2 +-
.../codegenerator/types}/fields/ImplicitField.java | 4 +-
.../codegenerator/types}/fields/OptionalField.java | 4 +-
.../codegenerator/types}/fields/PropertyField.java | 2 +-
.../codegenerator/types}/fields/ReservedField.java | 2 +-
.../codegenerator/types}/fields/SimpleField.java | 2 +-
.../codegenerator/types}/fields/SwitchField.java | 4 +-
.../codegenerator/types}/fields/TypedField.java | 4 +-
.../types}/references/ComplexTypeReference.java | 2 +-
.../types}/references/SimpleTypeReference.java | 2 +-
.../references/SimpleVarLengthTypeReference.java | 2 +-
.../types}/references/TypeReference.java | 2 +-
.../codegenerator/types}/terms/BinaryTerm.java | 2 +-
.../codegenerator/types}/terms/BooleanLiteral.java | 2 +-
.../codegenerator/types}/terms/Literal.java | 2 +-
.../codegenerator/types}/terms/NullLiteral.java | 2 +-
.../codegenerator/types}/terms/NumericLiteral.java | 2 +-
.../codegenerator/types}/terms/StringLiteral.java | 2 +-
.../plugins/codegenerator/types}/terms/Term.java | 2 +-
.../codegenerator/types}/terms/TernaryTerm.java | 2 +-
.../codegenerator/types}/terms/UnaryTerm.java | 2 +-
.../types}/terms/VariableLiteral.java | 2 +-
.../pom.xml | 8 +-
.../freemarker/FreemarkerLanguageOutput.java} | 37 ++++-----
.../FreemarkerLanguageTemplateHelper.java} | 7 +-
.../pom.xml | 13 +++-
.../plc4x/language/java/JavaLanguageOutput.java | 47 ++++++++++++
.../language/java/JavaLanguageTemplateHelper.java | 22 +++---
....plugins.codegenerator.language.LanguageOutput} | 0
.../main/resources/templates/java/io-template.ftlh | 0
.../resources/templates/java/pojo-template.ftlh | 0
.../parser/ManualExpressionParserTest.java | 37 ---------
.../parser/ManualMessageFormatParserTest.java | 36 ---------
sandbox/code-generation/pom.xml | 86 ++-------------------
.../pom.xml | 45 ++++++-----
.../plugins/codegenerator/language/mspec/MSpec.g4} | 2 +-
.../language/mspec}/expression/Expression.g4 | 0
.../expression/ExpressionStringListener.java | 6 +-
.../mspec}/expression/ExpressionStringParser.java | 6 +-
.../definitions/DefaultComplexTypeDefinition.java | 24 +++---
.../DefaultDiscriminatedComplexTypeDefinition.java | 8 +-
.../definitions/DefaultEnumTypeDefinition.java | 10 +--
.../model/definitions/DefaultTypeDefinition.java | 7 +-
.../mspec}/model/fields/DefaultArrayField.java | 8 +-
.../mspec}/model/fields/DefaultConstField.java | 6 +-
.../model/fields/DefaultDiscriminatorField.java | 6 +-
.../mspec}/model/fields/DefaultImplicitField.java | 8 +-
.../mspec}/model/fields/DefaultOptionalField.java | 8 +-
.../mspec}/model/fields/DefaultReservedField.java | 6 +-
.../mspec}/model/fields/DefaultSimpleField.java | 6 +-
.../mspec}/model/fields/DefaultSwitchField.java | 7 +-
.../references/DefaultComplexTypeReference.java | 4 +-
.../references/DefaultSimpleTypeReference.java | 4 +-
.../DefaultSimpleVarLengthTypeReference.java | 4 +-
.../mspec}/parser/MessageFormatListener.java | 88 +++++++++++-----------
.../mspec}/parser/MessageFormatParser.java | 12 +--
.../src}/remote-resources/LICENSE | 0
.../src}/remote-resources/UNLICENSE | 0
sandbox/code-generation/protocol-s7/pom.xml | 7 +-
.../org/apache/plc4x/protocol/s7/S7Protocol.java | 14 +++-
....plc4x.plugins.codegenerator.protocol.Protocol} | 0
sandbox/pom.xml | 1 +
93 files changed, 341 insertions(+), 434 deletions(-)
diff --git a/Jenkinsfile b/Jenkinsfile
index aa80126..3b7e47b 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -81,7 +81,7 @@ pipeline {
stage('Build Maven Plugin') {
steps {
echo 'Building Maven Plugin'
- sh 'mvn -f sandbox/code-generation/pom.xml -P${JENKINS_PROFILE} ${MVN_TEST_FAIL_IGNORE} ${MVN_LOCAL_REPO_OPT} clean install'
+ sh 'mvn -f sandbox/code-generation/external/pom.xml -P${JENKINS_PROFILE} ${MVN_TEST_FAIL_IGNORE} ${MVN_LOCAL_REPO_OPT} clean install'
}
post {
always {
diff --git a/pom.xml b/pom.xml
index e53e289..602efc6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -102,6 +102,7 @@
<!-- Exclude all generated code -->
<sonar.exclusions>**/generated-sources</sonar.exclusions>
+ <antlr.version>4.7.2</antlr.version>
<asm.version>5.0.4</asm.version>
<assertj.version>3.11.1</assertj.version>
<bouncycastle.version>1.60</bouncycastle.version>
diff --git a/sandbox/code-generation/driver-base-java/pom.xml b/sandbox/code-generation/driver-base-java/pom.xml
index 5924878..c64f2a9 100644
--- a/sandbox/code-generation/driver-base-java/pom.xml
+++ b/sandbox/code-generation/driver-base-java/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.plc4x.plugins</groupId>
<artifactId>plc4x-code-generaton</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>0.5.0-SNAPSHOT</version>
</parent>
<artifactId>plc4x-code-generation-driver-base-java</artifactId>
diff --git a/sandbox/code-generation/language-base/pom.xml b/sandbox/code-generation/external/language-base/pom.xml
similarity index 86%
rename from sandbox/code-generation/language-base/pom.xml
rename to sandbox/code-generation/external/language-base/pom.xml
index ad822ea..8896b2b 100644
--- a/sandbox/code-generation/language-base/pom.xml
+++ b/sandbox/code-generation/external/language-base/pom.xml
@@ -32,4 +32,11 @@
<name>Sandbox: Code Generation: Language Template Base</name>
<description>Base stuff for building language templates</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.plc4x.plugins</groupId>
+ <artifactId>plc4x-code-generation-types-base</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
</project>
\ No newline at end of file
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/LanguageOutput.java b/sandbox/code-generation/external/language-base/src/main/java/org/apache/plc4x/plugins/codegenerator/language/LanguageOutput.java
similarity index 83%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/LanguageOutput.java
rename to sandbox/code-generation/external/language-base/src/main/java/org/apache/plc4x/plugins/codegenerator/language/LanguageOutput.java
index 2aab9af..c190a6f 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/LanguageOutput.java
+++ b/sandbox/code-generation/external/language-base/src/main/java/org/apache/plc4x/plugins/codegenerator/language/LanguageOutput.java
@@ -17,10 +17,10 @@
under the License.
*/
-package org.apache.plc4x.language;
+package org.apache.plc4x.plugins.codegenerator.language;
-import org.apache.plc4x.language.exceptions.GenerationException;
-import org.apache.plc4x.language.definitions.ComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
import java.io.File;
import java.util.Map;
diff --git a/sandbox/code-generation/plc4x-maven-plugin/pom.xml b/sandbox/code-generation/external/plc4x-maven-plugin/pom.xml
similarity index 91%
rename from sandbox/code-generation/plc4x-maven-plugin/pom.xml
rename to sandbox/code-generation/external/plc4x-maven-plugin/pom.xml
index 02b9d11..5b7c946 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/pom.xml
+++ b/sandbox/code-generation/external/plc4x-maven-plugin/pom.xml
@@ -46,11 +46,6 @@
</dependency>
<dependency>
- <groupId>org.antlr</groupId>
- <artifactId>antlr4-runtime</artifactId>
- <version>${antlr.version}</version>
- </dependency>
- <dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
@@ -109,20 +104,6 @@
<build>
<plugins>
<plugin>
- <groupId>org.antlr</groupId>
- <artifactId>antlr4-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>antlr</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>antlr4</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/it/settings.xml b/sandbox/code-generation/external/plc4x-maven-plugin/src/it/settings.xml
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/src/it/settings.xml
rename to sandbox/code-generation/external/plc4x-maven-plugin/src/it/settings.xml
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/it/simple-it/pom.xml b/sandbox/code-generation/external/plc4x-maven-plugin/src/it/simple-it/pom.xml
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/src/it/simple-it/pom.xml
rename to sandbox/code-generation/external/plc4x-maven-plugin/src/it/simple-it/pom.xml
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/it/simple-it/src/main/resources/test/protocol.dfdl.xsd b/sandbox/code-generation/external/plc4x-maven-plugin/src/it/simple-it/src/main/resources/test/protocol.dfdl.xsd
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/src/it/simple-it/src/main/resources/test/protocol.dfdl.xsd
rename to sandbox/code-generation/external/plc4x-maven-plugin/src/it/simple-it/src/main/resources/test/protocol.dfdl.xsd
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/it/simple-it/verify.groovy b/sandbox/code-generation/external/plc4x-maven-plugin/src/it/simple-it/verify.groovy
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/src/it/simple-it/verify.groovy
rename to sandbox/code-generation/external/plc4x-maven-plugin/src/it/simple-it/verify.groovy
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/GenerateMojo.java b/sandbox/code-generation/external/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/GenerateMojo.java
similarity index 87%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/GenerateMojo.java
rename to sandbox/code-generation/external/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/GenerateMojo.java
index 516b789..1d11d3f 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/GenerateMojo.java
+++ b/sandbox/code-generation/external/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/GenerateMojo.java
@@ -26,11 +26,10 @@ import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.plugins.annotations.ResolutionScope;
import org.apache.maven.project.MavenProject;
-import org.apache.plc4x.language.LanguageOutput;
-import org.apache.plc4x.language.exceptions.GenerationException;
-import org.apache.plc4x.language.definitions.ComplexTypeDefinition;
-import org.apache.plc4x.plugins.codegenerator.parser.MessageFormatParser;
-import org.apache.plc4x.protocol.Protocol;
+import org.apache.plc4x.plugins.codegenerator.language.LanguageOutput;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
import java.io.*;
import java.net.MalformedURLException;
@@ -123,14 +122,11 @@ public class GenerateMojo extends AbstractMojo {
"Unable to find language output module '" + languageName + "' on modules classpath");
}
- // Try loading the file directly (Without classloader)
- InputStream schemaInputStream = protocol.getMessageFormatSchema();
- if(schemaInputStream == null) {
- throw new MojoExecutionException("Error loading message-format schema for protocol '" + protocolName + "'");
- }
- Map<String, ComplexTypeDefinition> types = new MessageFormatParser().parse(schemaInputStream);
-
try {
+ // Parse the type definitions.
+ Map<String, ComplexTypeDefinition> types = protocol.getTypeDefinitions();
+
+ // Generate output for the type definitions.
language.generate(outputDir, "org.apache.plc4x." + languageName.toLowerCase() +
"." + protocolName.toLowerCase(), types);
} catch (GenerationException e) {
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/site/asciidoc/index.adoc b/sandbox/code-generation/external/plc4x-maven-plugin/src/site/asciidoc/index.adoc
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/src/site/asciidoc/index.adoc
rename to sandbox/code-generation/external/plc4x-maven-plugin/src/site/asciidoc/index.adoc
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/site/asciidoc/message-format-language.adoc b/sandbox/code-generation/external/plc4x-maven-plugin/src/site/asciidoc/message-format-language.adoc
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/src/site/asciidoc/message-format-language.adoc
rename to sandbox/code-generation/external/plc4x-maven-plugin/src/site/asciidoc/message-format-language.adoc
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/test/java/org/apache/plc4x/plugins/codegenerator/GenerateMojoTest.java b/sandbox/code-generation/external/plc4x-maven-plugin/src/test/java/org/apache/plc4x/plugins/codegenerator/GenerateMojoTest.java
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/src/test/java/org/apache/plc4x/plugins/codegenerator/GenerateMojoTest.java
rename to sandbox/code-generation/external/plc4x-maven-plugin/src/test/java/org/apache/plc4x/plugins/codegenerator/GenerateMojoTest.java
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/test/projects/simple-embedded-schema/pom.xml b/sandbox/code-generation/external/plc4x-maven-plugin/src/test/projects/simple-embedded-schema/pom.xml
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/src/test/projects/simple-embedded-schema/pom.xml
rename to sandbox/code-generation/external/plc4x-maven-plugin/src/test/projects/simple-embedded-schema/pom.xml
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/test/projects/simple-embedded-schema/src/main/resources/protocol.spec b/sandbox/code-generation/external/plc4x-maven-plugin/src/test/projects/simple-embedded-schema/src/main/resources/protocol.spec
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/src/test/projects/simple-embedded-schema/src/main/resources/protocol.spec
rename to sandbox/code-generation/external/plc4x-maven-plugin/src/test/projects/simple-embedded-schema/src/main/resources/protocol.spec
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/test/projects/simple-embedded-schema/src/main/resources/template.ftlh b/sandbox/code-generation/external/plc4x-maven-plugin/src/test/projects/simple-embedded-schema/src/main/resources/template.ftlh
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/src/test/projects/simple-embedded-schema/src/main/resources/template.ftlh
rename to sandbox/code-generation/external/plc4x-maven-plugin/src/test/projects/simple-embedded-schema/src/main/resources/template.ftlh
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/test/resources/specs/s7.spec b/sandbox/code-generation/external/plc4x-maven-plugin/src/test/resources/specs/s7.spec
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/src/test/resources/specs/s7.spec
rename to sandbox/code-generation/external/plc4x-maven-plugin/src/test/resources/specs/s7.spec
diff --git a/sandbox/code-generation/pom.xml b/sandbox/code-generation/external/pom.xml
similarity index 92%
copy from sandbox/code-generation/pom.xml
copy to sandbox/code-generation/external/pom.xml
index dd40660..b15d1e7 100644
--- a/sandbox/code-generation/pom.xml
+++ b/sandbox/code-generation/external/pom.xml
@@ -34,15 +34,15 @@
</parent>
<groupId>org.apache.plc4x.plugins</groupId>
- <artifactId>plc4x-code-generaton</artifactId>
+ <artifactId>plc4x-code-generaton-external</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
- <name>Sandbox: Code Generation</name>
+ <name>Sandbox: Code Generation: External</name>
+ <description>This module groups all the modules that will be moved outside the core repository.</description>
<properties>
<maven.version>3.3.9</maven.version>
- <antlr.version>4.7.2</antlr.version>
<java.version>1.8</java.version>
</properties>
@@ -51,18 +51,10 @@
</prerequisites>
<modules>
+ <module>types-base</module>
<module>language-base</module>
<module>protocol-base</module>
-
<module>plc4x-maven-plugin</module>
-
- <module>language-template-java</module>
-
- <module>protocol-s7</module>
-
- <module>driver-base-java</module>
-
- <!--module>test-java-s7-driver</module-->
</modules>
<build>
diff --git a/sandbox/code-generation/protocol-base/pom.xml b/sandbox/code-generation/external/protocol-base/pom.xml
similarity index 85%
copy from sandbox/code-generation/protocol-base/pom.xml
copy to sandbox/code-generation/external/protocol-base/pom.xml
index 0ad89fe..c8ea9a4 100644
--- a/sandbox/code-generation/protocol-base/pom.xml
+++ b/sandbox/code-generation/external/protocol-base/pom.xml
@@ -32,4 +32,12 @@
<name>Sandbox: Code Generation: Protocol Base</name>
<description>Base stuff for building protocols</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.plc4x.plugins</groupId>
+ <artifactId>plc4x-code-generation-types-base</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
</project>
\ No newline at end of file
diff --git a/sandbox/code-generation/protocol-base/src/main/java/org/apache/plc4x/protocol/Protocol.java b/sandbox/code-generation/external/protocol-base/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/Protocol.java
similarity index 64%
rename from sandbox/code-generation/protocol-base/src/main/java/org/apache/plc4x/protocol/Protocol.java
rename to sandbox/code-generation/external/protocol-base/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/Protocol.java
index b329c1a..a55b5ad 100644
--- a/sandbox/code-generation/protocol-base/src/main/java/org/apache/plc4x/protocol/Protocol.java
+++ b/sandbox/code-generation/external/protocol-base/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/Protocol.java
@@ -17,9 +17,12 @@
under the License.
*/
-package org.apache.plc4x.protocol;
+package org.apache.plc4x.plugins.codegenerator.protocol;
-import java.io.InputStream;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+
+import java.util.Map;
public interface Protocol {
@@ -31,10 +34,11 @@ public interface Protocol {
String getName();
/**
- * Returns an InputStream to the spec that defines the message format of packets of the current driver.
+ * Returns a map of complex type definitions for which code has to be generated.
*
- * @return the InputStream for reading the message format spec for the current driver.
+ * @return the Map of types that need to be generated.
+ * @throws GenerationException if anything goes wrong parsing.
*/
- InputStream getMessageFormatSchema();
+ Map<String, ComplexTypeDefinition> getTypeDefinitions() throws GenerationException;
}
diff --git a/sandbox/code-generation/protocol-base/pom.xml b/sandbox/code-generation/external/types-base/pom.xml
similarity index 86%
rename from sandbox/code-generation/protocol-base/pom.xml
rename to sandbox/code-generation/external/types-base/pom.xml
index 0ad89fe..d5f2aa9 100644
--- a/sandbox/code-generation/protocol-base/pom.xml
+++ b/sandbox/code-generation/external/types-base/pom.xml
@@ -27,9 +27,9 @@
<version>1.0.0-SNAPSHOT</version>
</parent>
- <artifactId>plc4x-code-generation-protocol-base</artifactId>
+ <artifactId>plc4x-code-generation-types-base</artifactId>
- <name>Sandbox: Code Generation: Protocol Base</name>
- <description>Base stuff for building protocols</description>
+ <name>Sandbox: Code Generation: Base Types</name>
+ <description>Base used throughout the code-generation.</description>
</project>
\ No newline at end of file
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/Argument.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/Argument.java
similarity index 88%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/Argument.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/Argument.java
index 71432fe..3564015 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/Argument.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/Argument.java
@@ -17,9 +17,9 @@
under the License.
*/
-package org.apache.plc4x.language.definitions;
+package org.apache.plc4x.plugins.codegenerator.types.definitions;
-import org.apache.plc4x.language.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.references.TypeReference;
public class Argument {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/ComplexTypeDefinition.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/ComplexTypeDefinition.java
similarity index 84%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/ComplexTypeDefinition.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/ComplexTypeDefinition.java
index 4c61baa..81edc53 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/ComplexTypeDefinition.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/ComplexTypeDefinition.java
@@ -17,12 +17,12 @@
under the License.
*/
-package org.apache.plc4x.language.definitions;
+package org.apache.plc4x.plugins.codegenerator.types.definitions;
-import org.apache.plc4x.language.fields.ConstField;
-import org.apache.plc4x.language.fields.Field;
-import org.apache.plc4x.language.fields.PropertyField;
-import org.apache.plc4x.language.fields.SimpleField;
+import org.apache.plc4x.plugins.codegenerator.types.fields.ConstField;
+import org.apache.plc4x.plugins.codegenerator.types.fields.Field;
+import org.apache.plc4x.plugins.codegenerator.types.fields.PropertyField;
+import org.apache.plc4x.plugins.codegenerator.types.fields.SimpleField;
import java.util.List;
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/DiscriminatedComplexTypeDefinition.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/DiscriminatedComplexTypeDefinition.java
similarity index 93%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/DiscriminatedComplexTypeDefinition.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/DiscriminatedComplexTypeDefinition.java
index 1c874a5..f547354 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/DiscriminatedComplexTypeDefinition.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/DiscriminatedComplexTypeDefinition.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.definitions;
+package org.apache.plc4x.plugins.codegenerator.types.definitions;
public interface DiscriminatedComplexTypeDefinition extends ComplexTypeDefinition {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/EnumTypeDefinition.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/EnumTypeDefinition.java
similarity index 95%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/EnumTypeDefinition.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/EnumTypeDefinition.java
index c493dd1..9153988 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/EnumTypeDefinition.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/EnumTypeDefinition.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.definitions;
+package org.apache.plc4x.plugins.codegenerator.types.definitions;
import java.util.List;
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/TypeDefinition.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/TypeDefinition.java
similarity index 93%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/TypeDefinition.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/TypeDefinition.java
index 2eddb9c..806436b 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/definitions/TypeDefinition.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/TypeDefinition.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.definitions;
+package org.apache.plc4x.plugins.codegenerator.types.definitions;
public interface TypeDefinition {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/exceptions/GenerationException.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/exceptions/GenerationException.java
similarity index 94%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/exceptions/GenerationException.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/exceptions/GenerationException.java
index 80e782f..c387df1 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/exceptions/GenerationException.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/exceptions/GenerationException.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.exceptions;
+package org.apache.plc4x.plugins.codegenerator.types.exceptions;
public class GenerationException extends Exception {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/ArrayField.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/ArrayField.java
similarity index 89%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/ArrayField.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/ArrayField.java
index b9042e1..2023e0c 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/ArrayField.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/ArrayField.java
@@ -17,10 +17,10 @@
under the License.
*/
-package org.apache.plc4x.language.fields;
+package org.apache.plc4x.plugins.codegenerator.types.fields;
-import org.apache.plc4x.language.expressions.terms.Term;
+import org.apache.plc4x.plugins.codegenerator.types.terms.Term;
public interface ArrayField extends PropertyField {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/ConstField.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/ConstField.java
similarity index 90%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/ConstField.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/ConstField.java
index d1b6290..9c0029f 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/ConstField.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/ConstField.java
@@ -17,9 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.fields;
-
-import org.apache.plc4x.language.references.TypeReference;
+package org.apache.plc4x.plugins.codegenerator.types.fields;
public interface ConstField extends PropertyField {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/DiscriminatorField.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/DiscriminatorField.java
similarity index 93%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/DiscriminatorField.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/DiscriminatorField.java
index f725598..c5c0552 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/DiscriminatorField.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/DiscriminatorField.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.fields;
+package org.apache.plc4x.plugins.codegenerator.types.fields;
public interface DiscriminatorField extends TypedField {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/Field.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/Field.java
similarity index 93%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/Field.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/Field.java
index fa92e58..5863cc4 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/Field.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/Field.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.fields;
+package org.apache.plc4x.plugins.codegenerator.types.fields;
public interface Field {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/ImplicitField.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/ImplicitField.java
similarity index 88%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/ImplicitField.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/ImplicitField.java
index 283d777..1cc5f97 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/ImplicitField.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/ImplicitField.java
@@ -17,9 +17,9 @@
under the License.
*/
-package org.apache.plc4x.language.fields;
+package org.apache.plc4x.plugins.codegenerator.types.fields;
-import org.apache.plc4x.language.expressions.terms.Term;
+import org.apache.plc4x.plugins.codegenerator.types.terms.Term;
public interface ImplicitField extends TypedField {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/OptionalField.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/OptionalField.java
similarity index 88%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/OptionalField.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/OptionalField.java
index 1ede08b..ecef3be 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/OptionalField.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/OptionalField.java
@@ -17,10 +17,10 @@
under the License.
*/
-package org.apache.plc4x.language.fields;
+package org.apache.plc4x.plugins.codegenerator.types.fields;
-import org.apache.plc4x.language.expressions.terms.Term;
+import org.apache.plc4x.plugins.codegenerator.types.terms.Term;
public interface OptionalField extends PropertyField {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/PropertyField.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/PropertyField.java
similarity index 93%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/PropertyField.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/PropertyField.java
index bda4a3e..b336f4f 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/PropertyField.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/PropertyField.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.fields;
+package org.apache.plc4x.plugins.codegenerator.types.fields;
public interface PropertyField extends TypedField {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/ReservedField.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/ReservedField.java
similarity index 93%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/ReservedField.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/ReservedField.java
index e7644dd..5426d48 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/ReservedField.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/ReservedField.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.fields;
+package org.apache.plc4x.plugins.codegenerator.types.fields;
public interface ReservedField extends TypedField {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/SimpleField.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/SimpleField.java
similarity index 93%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/SimpleField.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/SimpleField.java
index 73a34f0..966faac 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/SimpleField.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/SimpleField.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.fields;
+package org.apache.plc4x.plugins.codegenerator.types.fields;
public interface SimpleField extends PropertyField {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/SwitchField.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/SwitchField.java
similarity index 86%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/SwitchField.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/SwitchField.java
index 5263b55..a6b4df7 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/SwitchField.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/SwitchField.java
@@ -17,9 +17,9 @@
under the License.
*/
-package org.apache.plc4x.language.fields;
+package org.apache.plc4x.plugins.codegenerator.types.fields;
-import org.apache.plc4x.language.definitions.DiscriminatedComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.DiscriminatedComplexTypeDefinition;
import java.util.List;
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/TypedField.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/TypedField.java
similarity index 86%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/TypedField.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/TypedField.java
index e170f6b..4bb2006 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/fields/TypedField.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/fields/TypedField.java
@@ -17,9 +17,9 @@
under the License.
*/
-package org.apache.plc4x.language.fields;
+package org.apache.plc4x.plugins.codegenerator.types.fields;
-import org.apache.plc4x.language.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.references.TypeReference;
public interface TypedField extends Field {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/references/ComplexTypeReference.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/references/ComplexTypeReference.java
similarity index 93%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/references/ComplexTypeReference.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/references/ComplexTypeReference.java
index 7681f1d..bc760ea 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/references/ComplexTypeReference.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/references/ComplexTypeReference.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.references;
+package org.apache.plc4x.plugins.codegenerator.types.references;
public interface ComplexTypeReference extends TypeReference {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/references/SimpleTypeReference.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/references/SimpleTypeReference.java
similarity index 93%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/references/SimpleTypeReference.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/references/SimpleTypeReference.java
index ad3eba9..834033d 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/references/SimpleTypeReference.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/references/SimpleTypeReference.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.references;
+package org.apache.plc4x.plugins.codegenerator.types.references;
public interface SimpleTypeReference extends TypeReference {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/references/SimpleVarLengthTypeReference.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/references/SimpleVarLengthTypeReference.java
similarity index 92%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/references/SimpleVarLengthTypeReference.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/references/SimpleVarLengthTypeReference.java
index 8a07797..052ca91 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/references/SimpleVarLengthTypeReference.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/references/SimpleVarLengthTypeReference.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.references;
+package org.apache.plc4x.plugins.codegenerator.types.references;
public interface SimpleVarLengthTypeReference {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/references/TypeReference.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/references/TypeReference.java
similarity index 92%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/references/TypeReference.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/references/TypeReference.java
index a4ad86d..3c33b3e 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/references/TypeReference.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/references/TypeReference.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.references;
+package org.apache.plc4x.plugins.codegenerator.types.references;
public interface TypeReference {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/BinaryTerm.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/BinaryTerm.java
similarity index 95%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/BinaryTerm.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/BinaryTerm.java
index cbd9d50..534a8cb 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/BinaryTerm.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/BinaryTerm.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.expressions.terms;
+package org.apache.plc4x.plugins.codegenerator.types.terms;
public class BinaryTerm implements Term {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/BooleanLiteral.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/BooleanLiteral.java
similarity index 94%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/BooleanLiteral.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/BooleanLiteral.java
index 24753c5..2ae9283 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/BooleanLiteral.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/BooleanLiteral.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.expressions.terms;
+package org.apache.plc4x.plugins.codegenerator.types.terms;
public class BooleanLiteral implements Literal {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/Literal.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/Literal.java
similarity index 93%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/Literal.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/Literal.java
index 4b8eff8..225ec37 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/Literal.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/Literal.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.expressions.terms;
+package org.apache.plc4x.plugins.codegenerator.types.terms;
public interface Literal extends Term {
}
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/NullLiteral.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/NullLiteral.java
similarity index 94%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/NullLiteral.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/NullLiteral.java
index c38bb49..153acc7 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/NullLiteral.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/NullLiteral.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.expressions.terms;
+package org.apache.plc4x.plugins.codegenerator.types.terms;
public class NullLiteral implements Literal {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/NumericLiteral.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/NumericLiteral.java
similarity index 94%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/NumericLiteral.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/NumericLiteral.java
index fc99dc8..320421c 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/NumericLiteral.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/NumericLiteral.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.expressions.terms;
+package org.apache.plc4x.plugins.codegenerator.types.terms;
public class NumericLiteral implements Literal {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/StringLiteral.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/StringLiteral.java
similarity index 94%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/StringLiteral.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/StringLiteral.java
index 1eb0068..f67982f 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/StringLiteral.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/StringLiteral.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.expressions.terms;
+package org.apache.plc4x.plugins.codegenerator.types.terms;
public class StringLiteral implements Literal {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/Term.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/Term.java
similarity index 93%
copy from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/Term.java
copy to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/Term.java
index b4b9217..389f6e4 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/Term.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/Term.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.expressions.terms;
+package org.apache.plc4x.plugins.codegenerator.types.terms;
public interface Term {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/TernaryTerm.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/TernaryTerm.java
similarity index 96%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/TernaryTerm.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/TernaryTerm.java
index df34ee7..484eb11 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/TernaryTerm.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/TernaryTerm.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.expressions.terms;
+package org.apache.plc4x.plugins.codegenerator.types.terms;
public class TernaryTerm implements Term {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/UnaryTerm.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/UnaryTerm.java
similarity index 95%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/UnaryTerm.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/UnaryTerm.java
index 8094e30..27ec739 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/UnaryTerm.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/UnaryTerm.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.expressions.terms;
+package org.apache.plc4x.plugins.codegenerator.types.terms;
public class UnaryTerm implements Term {
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/VariableLiteral.java b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/VariableLiteral.java
similarity index 97%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/VariableLiteral.java
rename to sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/VariableLiteral.java
index a980ac1..68ece64 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/VariableLiteral.java
+++ b/sandbox/code-generation/external/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/terms/VariableLiteral.java
@@ -17,7 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.expressions.terms;
+package org.apache.plc4x.plugins.codegenerator.types.terms;
import java.util.List;
diff --git a/sandbox/code-generation/language-template-java/pom.xml b/sandbox/code-generation/language-base-freemarker/pom.xml
similarity index 87%
copy from sandbox/code-generation/language-template-java/pom.xml
copy to sandbox/code-generation/language-base-freemarker/pom.xml
index fdc791e..7a972da 100644
--- a/sandbox/code-generation/language-template-java/pom.xml
+++ b/sandbox/code-generation/language-base-freemarker/pom.xml
@@ -24,13 +24,13 @@
<parent>
<groupId>org.apache.plc4x.plugins</groupId>
<artifactId>plc4x-code-generaton</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>0.5.0-SNAPSHOT</version>
</parent>
- <artifactId>plc4x-code-generation-language-template-java</artifactId>
+ <artifactId>plc4x-code-generation-language-base-freemarker</artifactId>
- <name>Sandbox: Code Generation: Language Template: Java</name>
- <description>Code generation language template for generating Java code</description>
+ <name>Sandbox: Code Generation: Language Base: Freemarker</name>
+ <description>Base code for building language outputs based on Freemarker</description>
<dependencies>
<dependency>
diff --git a/sandbox/code-generation/language-template-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageOutput.java b/sandbox/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/FreemarkerLanguageOutput.java
similarity index 82%
rename from sandbox/code-generation/language-template-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageOutput.java
rename to sandbox/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/FreemarkerLanguageOutput.java
index c30a6c9..d349e45 100644
--- a/sandbox/code-generation/language-template-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageOutput.java
+++ b/sandbox/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/FreemarkerLanguageOutput.java
@@ -17,30 +17,28 @@
under the License.
*/
-package org.apache.plc4x.language.java;
+package org.apache.plc4x.plugins.codegenerator.protocol.freemarker;
import freemarker.cache.ClassTemplateLoader;
import freemarker.core.ParseException;
import freemarker.template.*;
-import org.apache.plc4x.language.LanguageOutput;
-import org.apache.plc4x.language.exceptions.GenerationException;
-import org.apache.plc4x.language.definitions.ComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.language.LanguageOutput;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
-public class JavaLanguageOutput implements LanguageOutput {
+public abstract class FreemarkerLanguageOutput implements LanguageOutput {
- private static final Logger LOGGER = LoggerFactory.getLogger(JavaLanguageOutput.class);
-
- @Override
- public String getName() {
- return "Java";
- }
+ private static final Logger LOGGER = LoggerFactory.getLogger(FreemarkerLanguageOutput.class);
@Override
public void generate(File outputDir, String packageName, Map<String, ComplexTypeDefinition> types)
@@ -50,6 +48,9 @@ public class JavaLanguageOutput implements LanguageOutput {
// Configure the Freemarker template engine
Configuration freemarkerConfiguration = getFreemarkerConfiguration();
+ ClassTemplateLoader classTemplateLoader = new ClassTemplateLoader(FreemarkerLanguageOutput.class, "/");
+ freemarkerConfiguration.setTemplateLoader(classTemplateLoader);
+
// Initialize all templates
List<Template> templateList = getTemplates(freemarkerConfiguration);
@@ -114,16 +115,8 @@ public class JavaLanguageOutput implements LanguageOutput {
return configuration;
}
- private List<Template> getTemplates(Configuration freemarkerConfiguration) throws IOException {
- ClassTemplateLoader classTemplateLoader = new ClassTemplateLoader(JavaLanguageOutput.class, "/");
- freemarkerConfiguration.setTemplateLoader(classTemplateLoader);
- return Arrays.asList(
- freemarkerConfiguration.getTemplate("templates/java/pojo-template.ftlh"),
- freemarkerConfiguration.getTemplate("templates/java/io-template.ftlh"));
- }
+ protected abstract List<Template> getTemplates(Configuration freemarkerConfiguration) throws IOException;
- private JavaLanguageTemplateHelper getHelper(Map<String, ComplexTypeDefinition> types) {
- return new JavaLanguageTemplateHelper(types);
- }
+ protected abstract FreemarkerLanguageTemplateHelper getHelper(Map<String, ComplexTypeDefinition> types);
}
diff --git a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/Term.java b/sandbox/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/FreemarkerLanguageTemplateHelper.java
similarity index 86%
rename from sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/Term.java
rename to sandbox/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/FreemarkerLanguageTemplateHelper.java
index b4b9217..6b70cd4 100644
--- a/sandbox/code-generation/language-base/src/main/java/org/apache/plc4x/language/expressions/terms/Term.java
+++ b/sandbox/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/FreemarkerLanguageTemplateHelper.java
@@ -17,10 +17,7 @@
under the License.
*/
-package org.apache.plc4x.language.expressions.terms;
-
-public interface Term {
-
- boolean contains(String str);
+package org.apache.plc4x.plugins.codegenerator.protocol.freemarker;
+public interface FreemarkerLanguageTemplateHelper {
}
diff --git a/sandbox/code-generation/language-template-java/pom.xml b/sandbox/code-generation/language-java/pom.xml
similarity index 80%
copy from sandbox/code-generation/language-template-java/pom.xml
copy to sandbox/code-generation/language-java/pom.xml
index fdc791e..2b91216 100644
--- a/sandbox/code-generation/language-template-java/pom.xml
+++ b/sandbox/code-generation/language-java/pom.xml
@@ -24,17 +24,22 @@
<parent>
<groupId>org.apache.plc4x.plugins</groupId>
<artifactId>plc4x-code-generaton</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>0.5.0-SNAPSHOT</version>
</parent>
- <artifactId>plc4x-code-generation-language-template-java</artifactId>
+ <artifactId>plc4x-code-generation-language-java</artifactId>
- <name>Sandbox: Code Generation: Language Template: Java</name>
- <description>Code generation language template for generating Java code</description>
+ <name>Sandbox: Code Generation: Language: Java</name>
+ <description>Code generation template for generating Java code</description>
<dependencies>
<dependency>
<groupId>org.apache.plc4x.plugins</groupId>
+ <artifactId>plc4x-code-generation-language-base-freemarker</artifactId>
+ <version>0.5.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x.plugins</groupId>
<artifactId>plc4x-code-generation-language-base</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
diff --git a/sandbox/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageOutput.java b/sandbox/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageOutput.java
new file mode 100644
index 0000000..ba791e6
--- /dev/null
+++ b/sandbox/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageOutput.java
@@ -0,0 +1,47 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+
+package org.apache.plc4x.language.java;
+
+import freemarker.template.*;
+import org.apache.plc4x.plugins.codegenerator.protocol.freemarker.FreemarkerLanguageOutput;
+import org.apache.plc4x.plugins.codegenerator.protocol.freemarker.FreemarkerLanguageTemplateHelper;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition;
+
+import java.io.*;
+import java.util.*;
+
+public class JavaLanguageOutput extends FreemarkerLanguageOutput {
+
+ @Override
+ public String getName() {
+ return "Java";
+ }
+
+ protected List<Template> getTemplates(Configuration freemarkerConfiguration) throws IOException {
+ return Arrays.asList(
+ freemarkerConfiguration.getTemplate("templates/java/pojo-template.ftlh"),
+ freemarkerConfiguration.getTemplate("templates/java/io-template.ftlh"));
+ }
+
+ protected FreemarkerLanguageTemplateHelper getHelper(Map<String, ComplexTypeDefinition> types) {
+ return new JavaLanguageTemplateHelper(types);
+ }
+
+}
diff --git a/sandbox/code-generation/language-template-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java b/sandbox/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
similarity index 95%
rename from sandbox/code-generation/language-template-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
rename to sandbox/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
index b8314e8..39af1a1 100644
--- a/sandbox/code-generation/language-template-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
+++ b/sandbox/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
@@ -19,23 +19,25 @@
package org.apache.plc4x.language.java;
-import com.sun.org.apache.xpath.internal.operations.Variable;
import org.apache.commons.text.WordUtils;
-import org.apache.plc4x.language.definitions.ComplexTypeDefinition;
-import org.apache.plc4x.language.definitions.DiscriminatedComplexTypeDefinition;
-import org.apache.plc4x.language.definitions.TypeDefinition;
-import org.apache.plc4x.language.expressions.terms.*;
-import org.apache.plc4x.language.fields.*;
-import org.apache.plc4x.language.references.ComplexTypeReference;
-import org.apache.plc4x.language.references.SimpleTypeReference;
-import org.apache.plc4x.language.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.protocol.freemarker.FreemarkerLanguageTemplateHelper;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.DiscriminatedComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.fields.ArrayField;
+import org.apache.plc4x.plugins.codegenerator.types.fields.OptionalField;
+import org.apache.plc4x.plugins.codegenerator.types.fields.TypedField;
+import org.apache.plc4x.plugins.codegenerator.types.references.ComplexTypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.references.SimpleTypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.terms.*;
import java.util.Map;
import java.util.function.Function;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-public class JavaLanguageTemplateHelper {
+public class JavaLanguageTemplateHelper implements FreemarkerLanguageTemplateHelper {
private final Map<String, ComplexTypeDefinition> types;
diff --git a/sandbox/code-generation/language-template-java/src/main/resources/META-INF/services/org.apache.plc4x.language.LanguageOutput b/sandbox/code-generation/language-java/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.language.LanguageOutput
similarity index 100%
rename from sandbox/code-generation/language-template-java/src/main/resources/META-INF/services/org.apache.plc4x.language.LanguageOutput
rename to sandbox/code-generation/language-java/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.language.LanguageOutput
diff --git a/sandbox/code-generation/language-template-java/src/main/resources/templates/java/io-template.ftlh b/sandbox/code-generation/language-java/src/main/resources/templates/java/io-template.ftlh
similarity index 100%
rename from sandbox/code-generation/language-template-java/src/main/resources/templates/java/io-template.ftlh
rename to sandbox/code-generation/language-java/src/main/resources/templates/java/io-template.ftlh
diff --git a/sandbox/code-generation/language-template-java/src/main/resources/templates/java/pojo-template.ftlh b/sandbox/code-generation/language-java/src/main/resources/templates/java/pojo-template.ftlh
similarity index 100%
rename from sandbox/code-generation/language-template-java/src/main/resources/templates/java/pojo-template.ftlh
rename to sandbox/code-generation/language-java/src/main/resources/templates/java/pojo-template.ftlh
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/test/java/org/apache/plc4x/plugins/codegenerator/parser/ManualExpressionParserTest.java b/sandbox/code-generation/plc4x-maven-plugin/src/test/java/org/apache/plc4x/plugins/codegenerator/parser/ManualExpressionParserTest.java
deleted file mode 100644
index 0aa3412..0000000
--- a/sandbox/code-generation/plc4x-maven-plugin/src/test/java/org/apache/plc4x/plugins/codegenerator/parser/ManualExpressionParserTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-package org.apache.plc4x.plugins.codegenerator.parser;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.plc4x.language.expressions.terms.Term;
-import org.apache.plc4x.plugins.codegenerator.expression.ExpressionStringParser;
-
-import java.io.InputStream;
-
-public class ManualExpressionParserTest {
-
- public static void main(String[] args) {
- InputStream inputStream = IOUtils.toInputStream("lengthInBytes - (payload.lengthInBytes + 1)");
- ExpressionStringParser parser = new ExpressionStringParser();
- Term term = parser.parse(inputStream);
- System.out.println(term);
- }
-
-}
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/test/java/org/apache/plc4x/plugins/codegenerator/parser/ManualMessageFormatParserTest.java b/sandbox/code-generation/plc4x-maven-plugin/src/test/java/org/apache/plc4x/plugins/codegenerator/parser/ManualMessageFormatParserTest.java
deleted file mode 100644
index 50f1b00..0000000
--- a/sandbox/code-generation/plc4x-maven-plugin/src/test/java/org/apache/plc4x/plugins/codegenerator/parser/ManualMessageFormatParserTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-package org.apache.plc4x.plugins.codegenerator.parser;
-
-import org.apache.plc4x.language.definitions.ComplexTypeDefinition;
-
-import java.io.InputStream;
-import java.util.Map;
-
-public class ManualMessageFormatParserTest {
-
- public static void main(String[] args) {
- InputStream spec = Thread.currentThread().getContextClassLoader().getResourceAsStream("specs/s7.spec");
- MessageFormatParser parser = new MessageFormatParser();
- Map<String, ComplexTypeDefinition> types = parser.parse(spec);
- System.out.println(types);
- }
-
-}
diff --git a/sandbox/code-generation/pom.xml b/sandbox/code-generation/pom.xml
index dd40660..20a3152 100644
--- a/sandbox/code-generation/pom.xml
+++ b/sandbox/code-generation/pom.xml
@@ -22,100 +22,28 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <!--
- This is intentionally set to the apache parent as this way
- we can release this module separately from the rest of the project
- -->
<parent>
- <groupId>org.apache</groupId>
- <artifactId>apache</artifactId>
- <version>21</version>
- <relativePath/>
+ <groupId>org.apache.plc4x.sandbox</groupId>
+ <artifactId>plc4x-sandbox</artifactId>
+ <version>0.5.0-SNAPSHOT</version>
</parent>
<groupId>org.apache.plc4x.plugins</groupId>
<artifactId>plc4x-code-generaton</artifactId>
- <version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Sandbox: Code Generation</name>
- <properties>
- <maven.version>3.3.9</maven.version>
- <antlr.version>4.7.2</antlr.version>
- <java.version>1.8</java.version>
- </properties>
-
- <prerequisites>
- <maven>${maven.version}</maven>
- </prerequisites>
-
<modules>
- <module>language-base</module>
- <module>protocol-base</module>
-
- <module>plc4x-maven-plugin</module>
-
- <module>language-template-java</module>
-
+ <module>protocol-base-mspec</module>
<module>protocol-s7</module>
+ <module>language-base-freemarker</module>
+ <module>language-java</module>
+
<module>driver-base-java</module>
<!--module>test-java-s7-driver</module-->
</modules>
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <artifactId>maven-clean-plugin</artifactId>
- <version>3.1.0</version>
- </plugin>
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <version>3.0.2</version>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.8.0</version>
- <configuration>
- <source>${java.version}</source>
- <target>${java.version}</target>
- <testSource>${java.version}</testSource>
- <testTarget>${java.version}</testTarget>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-plugin-plugin</artifactId>
- <version>3.6.0</version>
- </plugin>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.22.1</version>
- </plugin>
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <version>3.0.2</version>
- </plugin>
- <plugin>
- <artifactId>maven-install-plugin</artifactId>
- <version>2.5.2</version>
- </plugin>
- <plugin>
- <artifactId>maven-deploy-plugin</artifactId>
- <version>2.8.2</version>
- </plugin>
- <plugin>
- <artifactId>maven-invoker-plugin</artifactId>
- <version>3.1.0</version>
- </plugin>
- <plugin>
- <groupId>org.antlr</groupId>
- <artifactId>antlr4-maven-plugin</artifactId>
- <version>${antlr.version}</version>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
</project>
diff --git a/sandbox/code-generation/language-template-java/pom.xml b/sandbox/code-generation/protocol-base-mspec/pom.xml
similarity index 62%
rename from sandbox/code-generation/language-template-java/pom.xml
rename to sandbox/code-generation/protocol-base-mspec/pom.xml
index fdc791e..2cb2bdf 100644
--- a/sandbox/code-generation/language-template-java/pom.xml
+++ b/sandbox/code-generation/protocol-base-mspec/pom.xml
@@ -24,13 +24,31 @@
<parent>
<groupId>org.apache.plc4x.plugins</groupId>
<artifactId>plc4x-code-generaton</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>0.5.0-SNAPSHOT</version>
</parent>
- <artifactId>plc4x-code-generation-language-template-java</artifactId>
+ <artifactId>plc4x-code-generation-protocol-base-mspec</artifactId>
- <name>Sandbox: Code Generation: Language Template: Java</name>
- <description>Code generation language template for generating Java code</description>
+ <name>Sandbox: Code Generation: Protocol Base: MSpec</name>
+ <description>Base stuff for building protocols using our custom MSpec format.</description>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr4-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>antlr</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>antlr4</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
<dependencies>
<dependency>
@@ -38,22 +56,15 @@
<artifactId>plc4x-code-generation-language-base</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
-
<dependency>
- <groupId>org.freemarker</groupId>
- <artifactId>freemarker</artifactId>
- <version>2.3.28</version>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.6</version>
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-text</artifactId>
- <version>1.6</version>
- </dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.7.25</version>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr4-runtime</artifactId>
+ <version>${antlr.version}</version>
</dependency>
</dependencies>
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/antlr4/org/apache/plc4x/codegenerator/parser/imaginary/Imaginary.g4 b/sandbox/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4
similarity index 99%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/antlr4/org/apache/plc4x/codegenerator/parser/imaginary/Imaginary.g4
rename to sandbox/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4
index c87c136..15d5e5f 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/antlr4/org/apache/plc4x/codegenerator/parser/imaginary/Imaginary.g4
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4
@@ -1,4 +1,4 @@
-grammar Imaginary;
+grammar MSpec;
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/antlr4/org/apache/plc4x/codegenerator/parser/expression/Expression.g4 b/sandbox/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/expression/Expression.g4
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/antlr4/org/apache/plc4x/codegenerator/parser/expression/Expression.g4
rename to sandbox/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/expression/Expression.g4
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/expression/ExpressionStringListener.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/expression/ExpressionStringListener.java
similarity index 97%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/expression/ExpressionStringListener.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/expression/ExpressionStringListener.java
index b9e8f45..fab3d61 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/expression/ExpressionStringListener.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/expression/ExpressionStringListener.java
@@ -17,11 +17,9 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.expression;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.expression;
-import org.apache.plc4x.codegenerator.parser.expression.ExpressionBaseListener;
-import org.apache.plc4x.codegenerator.parser.expression.ExpressionParser;
-import org.apache.plc4x.language.expressions.terms.*;
+import org.apache.plc4x.plugins.codegenerator.types.terms.*;
import java.util.LinkedList;
import java.util.List;
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/expression/ExpressionStringParser.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/expression/ExpressionStringParser.java
similarity index 86%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/expression/ExpressionStringParser.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/expression/ExpressionStringParser.java
index 18d8d69..4fccf54 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/expression/ExpressionStringParser.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/expression/ExpressionStringParser.java
@@ -17,15 +17,13 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.expression;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.expression;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.CommonTokenStream;
import org.antlr.v4.runtime.tree.ParseTree;
import org.antlr.v4.runtime.tree.ParseTreeWalker;
-import org.apache.plc4x.codegenerator.parser.expression.ExpressionLexer;
-import org.apache.plc4x.codegenerator.parser.expression.ExpressionParser;
-import org.apache.plc4x.language.expressions.terms.Term;
+import org.apache.plc4x.plugins.codegenerator.types.terms.Term;
import java.io.IOException;
import java.io.InputStream;
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/definitions/DefaultComplexTypeDefinition.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultComplexTypeDefinition.java
similarity index 77%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/definitions/DefaultComplexTypeDefinition.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultComplexTypeDefinition.java
index 46d410e..2618fe7 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/definitions/DefaultComplexTypeDefinition.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultComplexTypeDefinition.java
@@ -17,16 +17,14 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.definitions;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.definitions;
-import org.apache.plc4x.language.definitions.Argument;
-import org.apache.plc4x.language.fields.ConstField;
-import org.apache.plc4x.language.fields.Field;
-import org.apache.plc4x.language.definitions.ComplexTypeDefinition;
-import org.apache.plc4x.language.fields.PropertyField;
-import org.apache.plc4x.language.fields.SimpleField;
-import org.apache.plc4x.plugins.codegenerator.model.fields.DefaultConstField;
-import org.apache.plc4x.plugins.codegenerator.model.fields.DefaultSimpleField;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.Argument;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.fields.ConstField;
+import org.apache.plc4x.plugins.codegenerator.types.fields.Field;
+import org.apache.plc4x.plugins.codegenerator.types.fields.PropertyField;
+import org.apache.plc4x.plugins.codegenerator.types.fields.SimpleField;
import java.util.Collections;
import java.util.LinkedList;
@@ -54,14 +52,14 @@ public class DefaultComplexTypeDefinition extends DefaultTypeDefinition implemen
@Override
public List<SimpleField> getSimpleFields() {
- return fields.stream().filter(field -> field instanceof DefaultSimpleField).map(
- field -> (DefaultSimpleField) field).collect(Collectors.toList());
+ return fields.stream().filter(field -> field instanceof SimpleField).map(
+ field -> (SimpleField) field).collect(Collectors.toList());
}
@Override
public List<ConstField> getConstFields() {
- return fields.stream().filter(field -> field instanceof DefaultConstField).map(
- field -> (DefaultConstField) field).collect(Collectors.toList());
+ return fields.stream().filter(field -> field instanceof ConstField).map(
+ field -> (ConstField) field).collect(Collectors.toList());
}
@Override
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/definitions/DefaultDiscriminatedComplexTypeDefinition.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultDiscriminatedComplexTypeDefinition.java
similarity index 80%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/definitions/DefaultDiscriminatedComplexTypeDefinition.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultDiscriminatedComplexTypeDefinition.java
index 3ea24f2..ad912d1 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/definitions/DefaultDiscriminatedComplexTypeDefinition.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultDiscriminatedComplexTypeDefinition.java
@@ -17,11 +17,11 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.definitions;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.definitions;
-import org.apache.plc4x.language.definitions.Argument;
-import org.apache.plc4x.language.fields.Field;
-import org.apache.plc4x.language.definitions.DiscriminatedComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.Argument;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.DiscriminatedComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.fields.Field;
import java.util.List;
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/definitions/DefaultEnumTypeDefinition.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultEnumTypeDefinition.java
similarity index 77%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/definitions/DefaultEnumTypeDefinition.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultEnumTypeDefinition.java
index 52cb0e2..d887e14 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/definitions/DefaultEnumTypeDefinition.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultEnumTypeDefinition.java
@@ -17,18 +17,18 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.definitions;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.definitions;
-import org.apache.plc4x.language.definitions.Argument;
-import org.apache.plc4x.language.definitions.EnumTypeDefinition;
-import org.apache.plc4x.language.definitions.TypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.Argument;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.EnumTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
import java.util.List;
public class DefaultEnumTypeDefinition extends DefaultTypeDefinition implements EnumTypeDefinition {
private final TypeDefinition baseType;
- private final List<EnumValue> values;
+ private final List<EnumTypeDefinition.EnumValue> values;
public DefaultEnumTypeDefinition(String name, Argument[] parserArguments, TypeDefinition baseType, List<EnumValue> values) {
super(name, parserArguments);
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/definitions/DefaultTypeDefinition.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultTypeDefinition.java
similarity index 86%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/definitions/DefaultTypeDefinition.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultTypeDefinition.java
index d4bcc37..ef9bfb4 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/definitions/DefaultTypeDefinition.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultTypeDefinition.java
@@ -17,10 +17,11 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.definitions;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.definitions;
-import org.apache.plc4x.language.definitions.Argument;
-import org.apache.plc4x.language.definitions.TypeDefinition;
+
+import org.apache.plc4x.plugins.codegenerator.types.definitions.Argument;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
public abstract class DefaultTypeDefinition {
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultArrayField.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultArrayField.java
similarity index 86%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultArrayField.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultArrayField.java
index 2a8485c..d25b1ce 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultArrayField.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultArrayField.java
@@ -17,11 +17,11 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.fields;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.fields;
-import org.apache.plc4x.language.expressions.terms.Term;
-import org.apache.plc4x.language.fields.ArrayField;
-import org.apache.plc4x.language.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.fields.ArrayField;
+import org.apache.plc4x.plugins.codegenerator.types.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.terms.Term;
public class DefaultArrayField implements ArrayField {
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultConstField.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultConstField.java
similarity index 86%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultConstField.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultConstField.java
index c92f48b..79eadff 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultConstField.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultConstField.java
@@ -17,10 +17,10 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.fields;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.fields;
-import org.apache.plc4x.language.fields.ConstField;
-import org.apache.plc4x.language.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.fields.ConstField;
+import org.apache.plc4x.plugins.codegenerator.types.references.TypeReference;
public class DefaultConstField implements ConstField {
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultDiscriminatorField.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultDiscriminatorField.java
similarity index 84%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultDiscriminatorField.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultDiscriminatorField.java
index 48a7544..0e012ce 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultDiscriminatorField.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultDiscriminatorField.java
@@ -17,10 +17,10 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.fields;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.fields;
-import org.apache.plc4x.language.fields.DiscriminatorField;
-import org.apache.plc4x.language.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.fields.DiscriminatorField;
+import org.apache.plc4x.plugins.codegenerator.types.references.TypeReference;
public class DefaultDiscriminatorField implements DiscriminatorField {
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultImplicitField.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultImplicitField.java
similarity index 83%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultImplicitField.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultImplicitField.java
index 0769db5..9c2ffb4 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultImplicitField.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultImplicitField.java
@@ -17,11 +17,11 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.fields;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.fields;
-import org.apache.plc4x.language.expressions.terms.Term;
-import org.apache.plc4x.language.fields.ImplicitField;
-import org.apache.plc4x.language.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.fields.ImplicitField;
+import org.apache.plc4x.plugins.codegenerator.types.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.terms.Term;
public class DefaultImplicitField implements ImplicitField {
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultOptionalField.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultOptionalField.java
similarity index 83%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultOptionalField.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultOptionalField.java
index 1734fc3..521f75f 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultOptionalField.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultOptionalField.java
@@ -17,11 +17,11 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.fields;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.fields;
-import org.apache.plc4x.language.expressions.terms.Term;
-import org.apache.plc4x.language.fields.OptionalField;
-import org.apache.plc4x.language.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.fields.OptionalField;
+import org.apache.plc4x.plugins.codegenerator.types.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.terms.Term;
public class DefaultOptionalField implements OptionalField {
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultReservedField.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultReservedField.java
similarity index 85%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultReservedField.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultReservedField.java
index 12d2f32..ab9587d 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultReservedField.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultReservedField.java
@@ -17,10 +17,10 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.fields;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.fields;
-import org.apache.plc4x.language.fields.ReservedField;
-import org.apache.plc4x.language.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.fields.ReservedField;
+import org.apache.plc4x.plugins.codegenerator.types.references.TypeReference;
public class DefaultReservedField implements ReservedField {
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultSimpleField.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSimpleField.java
similarity index 85%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultSimpleField.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSimpleField.java
index 7385b44..ceb1d80 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultSimpleField.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSimpleField.java
@@ -17,10 +17,10 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.fields;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.fields;
-import org.apache.plc4x.language.fields.SimpleField;
-import org.apache.plc4x.language.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.fields.SimpleField;
+import org.apache.plc4x.plugins.codegenerator.types.references.TypeReference;
public class DefaultSimpleField implements SimpleField {
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultSwitchField.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSwitchField.java
similarity index 85%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultSwitchField.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSwitchField.java
index 48960af..c233df8 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/fields/DefaultSwitchField.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSwitchField.java
@@ -17,10 +17,11 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.fields;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.fields;
-import org.apache.plc4x.language.fields.SwitchField;
-import org.apache.plc4x.language.definitions.DiscriminatedComplexTypeDefinition;
+
+import org.apache.plc4x.plugins.codegenerator.types.definitions.DiscriminatedComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.fields.SwitchField;
import java.util.LinkedList;
import java.util.List;
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/references/DefaultComplexTypeReference.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultComplexTypeReference.java
similarity index 86%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/references/DefaultComplexTypeReference.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultComplexTypeReference.java
index 8a6ac69..90a1260 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/references/DefaultComplexTypeReference.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultComplexTypeReference.java
@@ -17,9 +17,9 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.references;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.references;
-import org.apache.plc4x.language.references.ComplexTypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.references.ComplexTypeReference;
public class DefaultComplexTypeReference implements ComplexTypeReference {
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/references/DefaultSimpleTypeReference.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultSimpleTypeReference.java
similarity index 88%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/references/DefaultSimpleTypeReference.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultSimpleTypeReference.java
index 56f1a54..a1f3aea 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/references/DefaultSimpleTypeReference.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultSimpleTypeReference.java
@@ -17,9 +17,9 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.references;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.references;
-import org.apache.plc4x.language.references.SimpleTypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.references.SimpleTypeReference;
public class DefaultSimpleTypeReference implements SimpleTypeReference {
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/references/DefaultSimpleVarLengthTypeReference.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultSimpleVarLengthTypeReference.java
similarity index 85%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/references/DefaultSimpleVarLengthTypeReference.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultSimpleVarLengthTypeReference.java
index 5ac1d3a..dd3f8e4 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/model/references/DefaultSimpleVarLengthTypeReference.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultSimpleVarLengthTypeReference.java
@@ -17,9 +17,9 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.model.references;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.model.references;
-import org.apache.plc4x.language.references.SimpleVarLengthTypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.references.SimpleVarLengthTypeReference;
public class DefaultSimpleVarLengthTypeReference extends DefaultSimpleTypeReference implements SimpleVarLengthTypeReference {
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/parser/MessageFormatListener.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
similarity index 71%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/parser/MessageFormatListener.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
index f2b098b..71e9765 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/parser/MessageFormatListener.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
@@ -17,31 +17,31 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.parser;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.parser;
import org.apache.commons.io.IOUtils;
-import org.apache.plc4x.codegenerator.parser.imaginary.ImaginaryBaseListener;
-import org.apache.plc4x.codegenerator.parser.imaginary.ImaginaryParser;
-import org.apache.plc4x.language.definitions.Argument;
-import org.apache.plc4x.language.expressions.terms.Term;
-import org.apache.plc4x.language.fields.ArrayField;
-import org.apache.plc4x.language.fields.Field;
-import org.apache.plc4x.language.fields.SwitchField;
-import org.apache.plc4x.language.references.SimpleTypeReference;
-import org.apache.plc4x.language.references.TypeReference;
-import org.apache.plc4x.language.definitions.ComplexTypeDefinition;
-import org.apache.plc4x.language.definitions.DiscriminatedComplexTypeDefinition;
-import org.apache.plc4x.plugins.codegenerator.expression.ExpressionStringParser;
-import org.apache.plc4x.plugins.codegenerator.model.definitions.DefaultComplexTypeDefinition;
-import org.apache.plc4x.plugins.codegenerator.model.definitions.DefaultDiscriminatedComplexTypeDefinition;
-import org.apache.plc4x.plugins.codegenerator.model.references.DefaultComplexTypeReference;
-import org.apache.plc4x.plugins.codegenerator.model.references.DefaultSimpleTypeReference;
-import org.apache.plc4x.plugins.codegenerator.model.fields.*;
+import org.apache.plc4x.plugins.codegenerator.language.mspec.MSpecBaseListener;
+import org.apache.plc4x.plugins.codegenerator.language.mspec.MSpecParser;
+import org.apache.plc4x.plugins.codegenerator.language.mspec.expression.ExpressionStringParser;
+import org.apache.plc4x.plugins.codegenerator.language.mspec.model.definitions.DefaultComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.language.mspec.model.definitions.DefaultDiscriminatedComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.language.mspec.model.fields.*;
+import org.apache.plc4x.plugins.codegenerator.language.mspec.model.references.DefaultComplexTypeReference;
+import org.apache.plc4x.plugins.codegenerator.language.mspec.model.references.DefaultSimpleTypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.Argument;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.DiscriminatedComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.fields.ArrayField;
+import org.apache.plc4x.plugins.codegenerator.types.fields.Field;
+import org.apache.plc4x.plugins.codegenerator.types.fields.SwitchField;
+import org.apache.plc4x.plugins.codegenerator.types.references.SimpleTypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.references.TypeReference;
+import org.apache.plc4x.plugins.codegenerator.types.terms.Term;
import java.io.InputStream;
import java.util.*;
-public class MessageFormatListener extends ImaginaryBaseListener {
+public class MessageFormatListener extends MSpecBaseListener {
private Stack<List<Field>> parserContexts;
private Map<String, ComplexTypeDefinition> complexTypes;
@@ -51,19 +51,19 @@ public class MessageFormatListener extends ImaginaryBaseListener {
}
@Override
- public void enterFile(ImaginaryParser.FileContext ctx) {
+ public void enterFile(MSpecParser.FileContext ctx) {
parserContexts = new Stack<>();
complexTypes = new HashMap<>();
}
@Override
- public void enterComplexType(ImaginaryParser.ComplexTypeContext ctx) {
+ public void enterComplexType(MSpecParser.ComplexTypeContext ctx) {
List<Field> parserContext = new LinkedList<>();
parserContexts.push(parserContext);
}
@Override
- public void exitComplexType(ImaginaryParser.ComplexTypeContext ctx) {
+ public void exitComplexType(MSpecParser.ComplexTypeContext ctx) {
String typeName = ctx.name.id.getText();
Argument[] parserArguments = null;
if(ctx.params != null) {
@@ -90,7 +90,7 @@ public class MessageFormatListener extends ImaginaryBaseListener {
}
@Override
- public void enterArrayField(ImaginaryParser.ArrayFieldContext ctx) {
+ public void enterArrayField(MSpecParser.ArrayFieldContext ctx) {
TypeReference type = getTypeReference(ctx.type);
String name = ctx.name.id.getText();
ArrayField.LengthType lengthType;
@@ -103,13 +103,13 @@ public class MessageFormatListener extends ImaginaryBaseListener {
InputStream inputStream = IOUtils.toInputStream(lengthExpressionString);
ExpressionStringParser parser = new ExpressionStringParser();
Term lengthExpression = parser.parse(inputStream);
- String[] params = getFieldParams((ImaginaryParser.FieldDefinitionContext) ctx.parent.parent);
+ String[] params = getFieldParams((MSpecParser.FieldDefinitionContext) ctx.parent.parent);
Field field = new DefaultArrayField(type, name, lengthType, lengthExpression, params);
parserContexts.peek().add(field);
}
@Override
- public void enterConstField(ImaginaryParser.ConstFieldContext ctx) {
+ public void enterConstField(MSpecParser.ConstFieldContext ctx) {
SimpleTypeReference type = getSimpleTypeReference(ctx.type);
String name = ctx.name.id.getText();
String expected = ctx.expected.expr.getText();
@@ -118,7 +118,7 @@ public class MessageFormatListener extends ImaginaryBaseListener {
}
@Override
- public void enterDiscriminatorField(ImaginaryParser.DiscriminatorFieldContext ctx) {
+ public void enterDiscriminatorField(MSpecParser.DiscriminatorFieldContext ctx) {
SimpleTypeReference type = getSimpleTypeReference(ctx.type);
String name = ctx.name.id.getText();
Field field = new DefaultDiscriminatorField(type, name);
@@ -126,16 +126,16 @@ public class MessageFormatListener extends ImaginaryBaseListener {
}
@Override
- public void enterSimpleField(ImaginaryParser.SimpleFieldContext ctx) {
+ public void enterSimpleField(MSpecParser.SimpleFieldContext ctx) {
TypeReference type = getTypeReference(ctx.type);
String name = ctx.name.id.getText();
- String[] params = getFieldParams((ImaginaryParser.FieldDefinitionContext) ctx.parent.parent);
+ String[] params = getFieldParams((MSpecParser.FieldDefinitionContext) ctx.parent.parent);
Field field = new DefaultSimpleField(type, name, params);
parserContexts.peek().add(field);
}
@Override
- public void enterImplicitField(ImaginaryParser.ImplicitFieldContext ctx) {
+ public void enterImplicitField(MSpecParser.ImplicitFieldContext ctx) {
SimpleTypeReference type = getSimpleTypeReference(ctx.type);
String name = ctx.name.id.getText();
String serializationExpressionString = ctx.serializationExpression.expr.getText();
@@ -147,20 +147,20 @@ public class MessageFormatListener extends ImaginaryBaseListener {
}
@Override
- public void enterOptionalField(ImaginaryParser.OptionalFieldContext ctx) {
+ public void enterOptionalField(MSpecParser.OptionalFieldContext ctx) {
TypeReference type = getTypeReference(ctx.type);
String name = ctx.name.id.getText();
String conditionExpressionString = ctx.condition.expr.getText();
InputStream inputStream = IOUtils.toInputStream(conditionExpressionString);
ExpressionStringParser parser = new ExpressionStringParser();
Term conditionExpression = parser.parse(inputStream);
- String[] params = getFieldParams((ImaginaryParser.FieldDefinitionContext) ctx.parent.parent);
+ String[] params = getFieldParams((MSpecParser.FieldDefinitionContext) ctx.parent.parent);
Field field = new DefaultOptionalField(type, name, conditionExpression, params);
parserContexts.peek().add(field);
}
@Override
- public void enterReservedField(ImaginaryParser.ReservedFieldContext ctx) {
+ public void enterReservedField(MSpecParser.ReservedFieldContext ctx) {
SimpleTypeReference type = getSimpleTypeReference(ctx.type);
String expected = ctx.expected.expr.getText();
Field field = new DefaultReservedField(type, expected);
@@ -168,7 +168,7 @@ public class MessageFormatListener extends ImaginaryBaseListener {
}
@Override
- public void enterTypeSwitchField(ImaginaryParser.TypeSwitchFieldContext ctx) {
+ public void enterTypeSwitchField(MSpecParser.TypeSwitchFieldContext ctx) {
int numDiscriminators = ctx.discriminators.expression().size();
String[] discriminatorNames = new String[numDiscriminators];
for(int i = 0; i < numDiscriminators; i++) {
@@ -179,21 +179,21 @@ public class MessageFormatListener extends ImaginaryBaseListener {
}
@Override
- public void enterCaseStatement(ImaginaryParser.CaseStatementContext ctx) {
+ public void enterCaseStatement(MSpecParser.CaseStatementContext ctx) {
List<Field> parserContext = new LinkedList<>();
parserContexts.push(parserContext);
}
@Override
- public void exitCaseStatement(ImaginaryParser.CaseStatementContext ctx) {
+ public void exitCaseStatement(MSpecParser.CaseStatementContext ctx) {
String typeName = ctx.name.getText();
Argument[] parserArguments = null;
- if(((ImaginaryParser.ComplexTypeContext) ctx.parent.parent.parent.parent).params != null) {
+ if(((MSpecParser.ComplexTypeContext) ctx.parent.parent.parent.parent).params != null) {
parserArguments = getParserArguments(
- ((ImaginaryParser.ComplexTypeContext) ctx.parent.parent.parent.parent).params.argument());
+ ((MSpecParser.ComplexTypeContext) ctx.parent.parent.parent.parent).params.argument());
}
- List<ImaginaryParser.ExpressionContext> expressions = ctx.discriminatorValues.expression();
+ List<MSpecParser.ExpressionContext> expressions = ctx.discriminatorValues.expression();
String[] discriminatorValues = new String[expressions.size()];
for (int i = 0; i < expressions.size(); i++) {
discriminatorValues[i] = expressions.get(i).expr.getText();
@@ -214,12 +214,12 @@ public class MessageFormatListener extends ImaginaryBaseListener {
}
/*@Override
- public void exitExpression(ImaginaryParser.ExpressionContext ctx) {
- ImaginaryParser.InnerExpressionContext expressionContext = ctx.innerExpression();
+ public void exitExpression(MSpecParser.ExpressionContext ctx) {
+ MSpecParser.InnerExpressionContext expressionContext = ctx.innerExpression();
super.exitExpression(ctx);
}*/
- private TypeReference getTypeReference(ImaginaryParser.TypeReferenceContext ctx) {
+ private TypeReference getTypeReference(MSpecParser.TypeReferenceContext ctx) {
if(ctx.simpleTypeReference != null) {
SimpleTypeReference.SimpleBaseType simpleBaseType = SimpleTypeReference.SimpleBaseType.valueOf(
ctx.simpleTypeReference.base.getText().toUpperCase());
@@ -234,7 +234,7 @@ public class MessageFormatListener extends ImaginaryBaseListener {
}
}
- private SimpleTypeReference getSimpleTypeReference(ImaginaryParser.DataTypeContext ctx) {
+ private SimpleTypeReference getSimpleTypeReference(MSpecParser.DataTypeContext ctx) {
SimpleTypeReference.SimpleBaseType simpleBaseType =
SimpleTypeReference.SimpleBaseType.valueOf(ctx.base.getText().toUpperCase());
if(ctx.size != null) {
@@ -254,7 +254,7 @@ public class MessageFormatListener extends ImaginaryBaseListener {
return null;
}
- private Argument[] getParserArguments(List<ImaginaryParser.ArgumentContext> params) {
+ private Argument[] getParserArguments(List<MSpecParser.ArgumentContext> params) {
Argument[] parserArguments = new Argument[params.size()];
for (int i = 0; i < params.size(); i++) {
TypeReference type = getTypeReference(params.get(i).type);
@@ -264,7 +264,7 @@ public class MessageFormatListener extends ImaginaryBaseListener {
return parserArguments;
}
- private String[] getFieldParams(ImaginaryParser.FieldDefinitionContext parentCtx) {
+ private String[] getFieldParams(MSpecParser.FieldDefinitionContext parentCtx) {
String[] params = null;
if(parentCtx.params != null) {
params = new String[parentCtx.params.expression().size()];
diff --git a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/parser/MessageFormatParser.java b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatParser.java
similarity index 78%
rename from sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/parser/MessageFormatParser.java
rename to sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatParser.java
index 425a698..2295d3a 100644
--- a/sandbox/code-generation/plc4x-maven-plugin/src/main/java/org/apache/plc4x/plugins/codegenerator/parser/MessageFormatParser.java
+++ b/sandbox/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatParser.java
@@ -17,15 +17,15 @@
under the License.
*/
-package org.apache.plc4x.plugins.codegenerator.parser;
+package org.apache.plc4x.plugins.codegenerator.language.mspec.parser;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.CommonTokenStream;
import org.antlr.v4.runtime.tree.ParseTree;
import org.antlr.v4.runtime.tree.ParseTreeWalker;
-import org.apache.plc4x.codegenerator.parser.imaginary.ImaginaryLexer;
-import org.apache.plc4x.codegenerator.parser.imaginary.ImaginaryParser;
-import org.apache.plc4x.language.definitions.ComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.language.mspec.MSpecLexer;
+import org.apache.plc4x.plugins.codegenerator.language.mspec.MSpecParser;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition;
import java.io.IOException;
import java.io.InputStream;
@@ -35,9 +35,9 @@ public class MessageFormatParser {
public Map<String, ComplexTypeDefinition> parse(InputStream source) {
try {
- ImaginaryLexer lexer = new ImaginaryLexer(CharStreams.fromStream(source));
+ MSpecLexer lexer = new MSpecLexer(CharStreams.fromStream(source));
CommonTokenStream tokens = new CommonTokenStream(lexer);
- ImaginaryParser parser = new ImaginaryParser(tokens);
+ MSpecParser parser = new MSpecParser(tokens);
ParseTree tree = parser.file();
ParseTreeWalker walker = new ParseTreeWalker();
MessageFormatListener listener = new MessageFormatListener();
diff --git a/sandbox/code-generation/plc4x-maven-plugin/remote-resources/LICENSE b/sandbox/code-generation/protocol-base-mspec/src/remote-resources/LICENSE
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/remote-resources/LICENSE
rename to sandbox/code-generation/protocol-base-mspec/src/remote-resources/LICENSE
diff --git a/sandbox/code-generation/plc4x-maven-plugin/remote-resources/UNLICENSE b/sandbox/code-generation/protocol-base-mspec/src/remote-resources/UNLICENSE
similarity index 100%
rename from sandbox/code-generation/plc4x-maven-plugin/remote-resources/UNLICENSE
rename to sandbox/code-generation/protocol-base-mspec/src/remote-resources/UNLICENSE
diff --git a/sandbox/code-generation/protocol-s7/pom.xml b/sandbox/code-generation/protocol-s7/pom.xml
index 73c9f56..5449eb3 100644
--- a/sandbox/code-generation/protocol-s7/pom.xml
+++ b/sandbox/code-generation/protocol-s7/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.plc4x.plugins</groupId>
<artifactId>plc4x-code-generaton</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>0.5.0-SNAPSHOT</version>
</parent>
<artifactId>plc4x-code-generation-protocol-s7</artifactId>
@@ -38,6 +38,11 @@
<artifactId>plc4x-code-generation-protocol-base</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.plc4x.plugins</groupId>
+ <artifactId>plc4x-code-generation-protocol-base-mspec</artifactId>
+ <version>0.5.0-SNAPSHOT</version>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git a/sandbox/code-generation/protocol-s7/src/main/java/org/apache/plc4x/protocol/s7/S7Protocol.java b/sandbox/code-generation/protocol-s7/src/main/java/org/apache/plc4x/protocol/s7/S7Protocol.java
index 3319489..96b3a31 100644
--- a/sandbox/code-generation/protocol-s7/src/main/java/org/apache/plc4x/protocol/s7/S7Protocol.java
+++ b/sandbox/code-generation/protocol-s7/src/main/java/org/apache/plc4x/protocol/s7/S7Protocol.java
@@ -19,9 +19,13 @@
package org.apache.plc4x.protocol.s7;
-import org.apache.plc4x.protocol.Protocol;
+import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
+import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
+import org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition;
+import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
import java.io.InputStream;
+import java.util.Map;
public class S7Protocol implements Protocol {
@@ -31,8 +35,12 @@ public class S7Protocol implements Protocol {
}
@Override
- public InputStream getMessageFormatSchema() {
- return S7Protocol.class.getResourceAsStream("/protocols/s7/protocol.spec");
+ public Map<String, ComplexTypeDefinition> getTypeDefinitions() throws GenerationException {
+ InputStream schemaInputStream = S7Protocol.class.getResourceAsStream("/protocols/s7/protocol.spec");
+ if(schemaInputStream == null) {
+ throw new GenerationException("Error loading message-format schema for protocol '" + getName() + "'");
+ }
+ return new MessageFormatParser().parse(schemaInputStream);
}
}
diff --git a/sandbox/code-generation/protocol-s7/src/main/resources/META-INF/services/org.apache.plc4x.protocol.Protocol b/sandbox/code-generation/protocol-s7/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.protocol.Protocol
similarity index 100%
rename from sandbox/code-generation/protocol-s7/src/main/resources/META-INF/services/org.apache.plc4x.protocol.Protocol
rename to sandbox/code-generation/protocol-s7/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.protocol.Protocol
diff --git a/sandbox/pom.xml b/sandbox/pom.xml
index 30fbe1b..6935f75 100644
--- a/sandbox/pom.xml
+++ b/sandbox/pom.xml
@@ -39,6 +39,7 @@
<module>dynamic-driver-knxnet-ip</module>
<module>dynamic-driver-s7</module>
<module>code-gen</module>
+ <module>code-generation</module>
</modules>
<dependencyManagement>