You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by tm...@apache.org on 2019/05/05 16:38:58 UTC
[plc4x] 02/04: Further Refactoring.
This is an automated email from the ASF dual-hosted git repository.
tmitsch pushed a commit to branch feature/code-gen
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 7e88bdb3ac90e37c4d8495aceb1e1a0e9c21487f
Author: julian <j....@pragmaticminds.de>
AuthorDate: Sun May 5 18:00:22 2019 +0200
Further Refactoring.
---
.../java/org/apache/plc4x/codegen/DFDLUtil.java | 2 +-
.../org/apache/plc4x/codegen/ast/AbstractNode.java | 6 +--
.../apache/plc4x/codegen/ast/BinaryExpression.java | 2 +-
.../plc4x/codegen/ast/ConditionalStatement.java | 2 +-
.../plc4x/codegen/ast/ConstantExpression.java | 2 +-
.../apache/plc4x/codegen/ast/ExceptionType.java | 2 +-
.../org/apache/plc4x/codegen/ast/Expression.java | 2 +-
.../org/apache/plc4x/codegen/ast/Expressions.java | 44 +++++++++++++++++++---
.../apache/plc4x/codegen/ast/FieldDeclaration.java | 8 ++--
.../apache/plc4x/codegen/ast/FieldReference.java | 4 +-
.../org/apache/plc4x/codegen/ast/Generator.java | 4 +-
.../apache/plc4x/codegen/ast/JavaGenerator.java | 4 +-
.../java/org/apache/plc4x/codegen/ast/Method.java | 14 +++----
.../apache/plc4x/codegen/ast/MethodDefinition.java | 8 ++--
.../apache/plc4x/codegen/ast/NewExpression.java | 4 +-
.../java/org/apache/plc4x/codegen/ast/NoOp.java | 37 ------------------
.../plc4x/codegen/ast/ParameterExpression.java | 2 +-
.../org/apache/plc4x/codegen/ast/Primitive.java | 2 +-
.../apache/plc4x/codegen/ast/PythonGenerator.java | 4 +-
.../ast/{TypeNode.java => TypeDefinition.java} | 6 +--
.../org/apache/plc4x/codegen/ast/TypeUtil.java | 2 +-
.../org/apache/plc4x/codegen/ast/UnknownType.java | 2 +-
.../org/apache/plc4x/codegen/util/EnumFactory.java | 12 +++---
.../org/apache/plc4x/codegen/util/PojoFactory.java | 14 +++----
.../plc4x/codegen/ast/JavaGeneratorTest.java | 6 +--
25 files changed, 95 insertions(+), 100 deletions(-)
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/DFDLUtil.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/DFDLUtil.java
index 7a97ae1..b3bdaf5 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/DFDLUtil.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/DFDLUtil.java
@@ -56,7 +56,7 @@ public class DFDLUtil {
final Iterator<Element> elementIterator = sequence.elementIterator(ELEMENT);
while (elementIterator.hasNext()) {
final Element elem = elementIterator.next();
- fields.add(new PojoFactory.Field(new TypeNode(elem.attributeValue("type")), elem.attributeValue("name")));
+ fields.add(new PojoFactory.Field(new TypeDefinition(elem.attributeValue("type")), elem.attributeValue("name")));
}
final PojoFactory.PojoDescription desc = new PojoFactory.PojoDescription(element.attributeValue("name"), fields);
final ClassDeclaration classDeclaration = factory.create(desc);
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/AbstractNode.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/AbstractNode.java
index 962bfba..aa41770 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/AbstractNode.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/AbstractNode.java
@@ -20,13 +20,13 @@ package org.apache.plc4x.codegen.ast;
public abstract class AbstractNode implements Node {
- public final TypeNode type;
+ public final TypeDefinition type;
- protected AbstractNode(TypeNode type) {
+ protected AbstractNode(TypeDefinition type) {
this.type = type;
}
- public TypeNode getType() {
+ public TypeDefinition getType() {
return this.type;
}
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/BinaryExpression.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/BinaryExpression.java
index 9635ab3..65b9a31 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/BinaryExpression.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/BinaryExpression.java
@@ -24,7 +24,7 @@ public class BinaryExpression extends Expression {
private final Node right;
private final Operation op;
- protected BinaryExpression(TypeNode type, Node left, Node right, Operation op) {
+ protected BinaryExpression(TypeDefinition type, Node left, Node right, Operation op) {
super(type);
this.left = left;
this.right = right;
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ConditionalStatement.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ConditionalStatement.java
index 701a48c..049cf60 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ConditionalStatement.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ConditionalStatement.java
@@ -20,7 +20,7 @@ package org.apache.plc4x.codegen.ast;
public class ConditionalStatement extends Expression {
- protected ConditionalStatement(TypeNode type) {
+ protected ConditionalStatement(TypeDefinition type) {
super(type);
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ConstantExpression.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ConstantExpression.java
index 83b71e1..d98a2d6 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ConstantExpression.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ConstantExpression.java
@@ -22,7 +22,7 @@ public class ConstantExpression extends Expression {
private Object value;
- public ConstantExpression(TypeNode type, Object value) {
+ public ConstantExpression(TypeDefinition type, Object value) {
super(type);
this.value = value;
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ExceptionType.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ExceptionType.java
index 9e165c8..be42228 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ExceptionType.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ExceptionType.java
@@ -21,7 +21,7 @@ package org.apache.plc4x.codegen.ast;
/**
* Defines an Exception-Type.
*/
-public class ExceptionType extends TypeNode {
+public class ExceptionType extends TypeDefinition {
public ExceptionType(String typeString) {
super(typeString);
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Expression.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Expression.java
index f120cff..75ca271 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Expression.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Expression.java
@@ -20,7 +20,7 @@ package org.apache.plc4x.codegen.ast;
public abstract class Expression extends AbstractNode {
- protected Expression(TypeNode type) {
+ protected Expression(TypeDefinition type) {
super(type);
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Expressions.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Expressions.java
index 6f7008a..5c2f1e2 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Expressions.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Expressions.java
@@ -50,7 +50,7 @@ public class Expressions {
* @param op
* @return
*/
- public static Expression binaryExpression(TypeNode type, Node left, Node right, BinaryExpression.Operation op) {
+ public static Expression binaryExpression(TypeDefinition type, Node left, Node right, BinaryExpression.Operation op) {
return new BinaryExpression(type, left, right, op);
}
@@ -129,7 +129,7 @@ public class Expressions {
* Define a compile time constant and also passes
* the expected type for usage in the code generation later.
*/
- public static Expression constant(TypeNode type, Object value) {
+ public static Expression constant(TypeDefinition type, Object value) {
return new ConstantExpression(value);
}
@@ -144,7 +144,7 @@ public class Expressions {
/**
* Declares a constant (no field), which is not initialized.
*/
- public static Statement declaration(String variable, TypeNode type) {
+ public static Statement declaration(String variable, TypeDefinition type) {
return new DeclarationStatement(parameter(variable, type), null);
}
@@ -175,24 +175,56 @@ public class Expressions {
public static Expression call(Node target, String methodName, Node... arguments) {
return new CallExpression(
new Method(UnknownType.INSTANCE, methodName, UnknownType.INSTANCE,
- Collections.<TypeNode>emptyList(), Collections.<ExceptionType>emptyList()),
+ Collections.<TypeDefinition>emptyList(), Collections.<ExceptionType>emptyList()),
target,
arguments
);
}
+ public static Expression call(Method method, Node target, Node... arguments) {
+ return new CallExpression(method, target, arguments);
+ }
+
+ /**
+ * Static call.
+ */
+ public static Expression call(Method method, Node... arguments) {
+ return new CallExpression(method, null, arguments);
+ }
+
/**
* Reference to a Method, similar than field-reference
* @return
*/
- public static Method method(TypeNode definingClass, String name, TypeNode returnType, List<TypeNode> parameterTypes, List<ExceptionType> exceptions) {
+ public static Method method(TypeDefinition definingClass, String name, TypeDefinition returnType, List<TypeDefinition> parameterTypes, List<ExceptionType> exceptions) {
return new Method(definingClass, name, returnType, parameterTypes, exceptions);
}
/**
* Declares a variable.
*/
- public static ParameterExpression parameter(String name, TypeNode type) {
+ public static ParameterExpression parameter(String name, TypeDefinition type) {
return new ParameterExpression(type, name);
}
+
+ /**
+ * New Instance of Class / Type.
+ */
+ public static Expression new_(TypeDefinition type, Node... arguments) {
+ return new NewExpression(type, arguments);
+ }
+
+ /**
+ * New Instance of Class / Type.
+ */
+ public static Expression new_(TypeDefinition type, List<Node> arguments) {
+ return new NewExpression(type, arguments);
+ }
+
+ /**
+ * Return Statements.
+ */
+ public static ReturnStatement return_(Expression value) {
+ return new ReturnStatement(value);
+ }
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/FieldDeclaration.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/FieldDeclaration.java
index 5231a4a..426dabb 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/FieldDeclaration.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/FieldDeclaration.java
@@ -26,23 +26,23 @@ import java.util.Set;
public class FieldDeclaration implements Node {
private final Set<Modifier> modifiers;
- private final TypeNode type;
+ private final TypeDefinition type;
private final String name;
private final Expression initializer;
- public FieldDeclaration(Set<Modifier> modifiers, TypeNode type, String name, Expression initializer) {
+ public FieldDeclaration(Set<Modifier> modifiers, TypeDefinition type, String name, Expression initializer) {
this.modifiers = modifiers;
this.type = type;
this.name = name;
this.initializer = initializer;
}
- public FieldDeclaration(TypeNode type, String name) {
+ public FieldDeclaration(TypeDefinition type, String name) {
this(Collections.emptySet(), type, name, null);
}
- public FieldDeclaration(TypeNode type, String name, Modifier... modifiers) {
+ public FieldDeclaration(TypeDefinition type, String name, Modifier... modifiers) {
this(new HashSet<>(Arrays.asList(modifiers)), type, name, null);
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/FieldReference.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/FieldReference.java
index aa9f14d..cc954e8 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/FieldReference.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/FieldReference.java
@@ -25,12 +25,12 @@ public class FieldReference extends ParameterExpression {
/**
* if target == null, reference on a field in the surrounding class ("this")
*/
- public FieldReference(TypeNode type, String name, Node target) {
+ public FieldReference(TypeDefinition type, String name, Node target) {
super(type, name);
this.target = target;
}
- public FieldReference(TypeNode type, String name) {
+ public FieldReference(TypeDefinition type, String name) {
this(type, name, null);
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Generator.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Generator.java
index 4fdf6c3..d725c1b 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Generator.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Generator.java
@@ -60,9 +60,9 @@ public interface Generator {
void generateClass(String namespace, String className, List<FieldDeclaration> fields, List<ConstructorDeclaration> constructors, List<MethodDefinition> methods, List<ClassDeclaration> innerClasses, boolean mainClass);
- void generateFieldDeclaration(Set<Modifier> modifiers, TypeNode type, String name, Expression initializer);
+ void generateFieldDeclaration(Set<Modifier> modifiers, TypeDefinition type, String name, Expression initializer);
- void generateFieldReference(TypeNode type, String name);
+ void generateFieldReference(TypeDefinition type, String name);
void generateConstructor(Set<Modifier> modifiers, String className, List<ParameterExpression> parameters, Block body);
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/JavaGenerator.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/JavaGenerator.java
index f46a039..90b9b35 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/JavaGenerator.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/JavaGenerator.java
@@ -248,7 +248,7 @@ public class JavaGenerator implements Generator {
writer.writeLine("}");
}
- @Override public void generateFieldDeclaration(Set<Modifier> modifiers, TypeNode type, String name, Expression initializer) {
+ @Override public void generateFieldDeclaration(Set<Modifier> modifiers, TypeDefinition type, String name, Expression initializer) {
if (modifiers.contains(Modifier.PRIVATE)) {
writer.startLine("private ");
} else {
@@ -272,7 +272,7 @@ public class JavaGenerator implements Generator {
writer.endLine();
}
- @Override public void generateFieldReference(TypeNode type, String name) {
+ @Override public void generateFieldReference(TypeDefinition type, String name) {
writer.write("this.");
writer.write(name);
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Method.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Method.java
index b3555ed..1e44fe1 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Method.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Method.java
@@ -27,13 +27,13 @@ import java.util.List;
*/
public class Method implements Node {
- private final TypeNode type; // Type where this thing is defined on
+ private final TypeDefinition type; // Type where this thing is defined on
private final String name;
- private final TypeNode returnType;
- private final List<TypeNode> parameterTypes;
+ private final TypeDefinition returnType;
+ private final List<TypeDefinition> parameterTypes;
private final List<ExceptionType> expressionTypes;
- public Method(TypeNode type, String name, TypeNode returnType, List<TypeNode> parameterTypes, List<ExceptionType> expressionTypes) {
+ public Method(TypeDefinition type, String name, TypeDefinition returnType, List<TypeDefinition> parameterTypes, List<ExceptionType> expressionTypes) {
this.type = type;
this.name = name;
this.returnType = returnType;
@@ -41,7 +41,7 @@ public class Method implements Node {
this.expressionTypes = expressionTypes;
}
- public TypeNode getType() {
+ public TypeDefinition getType() {
return type;
}
@@ -49,11 +49,11 @@ public class Method implements Node {
return name;
}
- public TypeNode getReturnType() {
+ public TypeDefinition getReturnType() {
return returnType;
}
- public List<TypeNode> getParameterTypes() {
+ public List<TypeDefinition> getParameterTypes() {
return parameterTypes;
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/MethodDefinition.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/MethodDefinition.java
index 3e71599..999fd44 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/MethodDefinition.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/MethodDefinition.java
@@ -26,11 +26,11 @@ public class MethodDefinition implements Node {
private final Set<Modifier> modifiers;
private final String name;
- private final TypeNode resultType;
+ private final TypeDefinition resultType;
private final List<ParameterExpression> parameters;
private final Block body;
- public MethodDefinition(Set<Modifier> modifiers, String name, TypeNode resultType, List<ParameterExpression> parameters, Block body) {
+ public MethodDefinition(Set<Modifier> modifiers, String name, TypeDefinition resultType, List<ParameterExpression> parameters, Block body) {
this.modifiers = modifiers;
this.name = name;
this.resultType = resultType;
@@ -38,7 +38,7 @@ public class MethodDefinition implements Node {
this.body = body;
}
- public MethodDefinition(String name, TypeNode resultType, List<ParameterExpression> parameters, Block body) {
+ public MethodDefinition(String name, TypeDefinition resultType, List<ParameterExpression> parameters, Block body) {
this(Collections.<Modifier>emptySet(), name, resultType, parameters, body);
}
@@ -50,7 +50,7 @@ public class MethodDefinition implements Node {
return name;
}
- public TypeNode getResultType() {
+ public TypeDefinition getResultType() {
return resultType;
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/NewExpression.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/NewExpression.java
index 8b29a4e..42d17c6 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/NewExpression.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/NewExpression.java
@@ -25,12 +25,12 @@ public class NewExpression extends Expression {
private List<Node> arguments;
- public NewExpression(TypeNode myClazz, List<Node> arguments) {
+ public NewExpression(TypeDefinition myClazz, List<Node> arguments) {
super(myClazz);
this.arguments = arguments;
}
- public NewExpression(TypeNode myClazz, Node... arguments) {
+ public NewExpression(TypeDefinition myClazz, Node... arguments) {
this(myClazz, Arrays.asList(arguments));
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/NoOp.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/NoOp.java
deleted file mode 100644
index 583670a..0000000
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/NoOp.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.codegen.ast;
-
-/**
- * Do Nothing command;
- */
-public class NoOp extends Expression {
-
- protected NoOp() {
- super(Primitive.VOID);
- }
-
- @Override public <T> T accept(NodeVisitor<T> visitor) {
- return null;
- }
-
- @Override public void write(Generator writer) {
- writer.generateNoOp();
- }
-}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ParameterExpression.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ParameterExpression.java
index bbaf56a..1d0887c 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ParameterExpression.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/ParameterExpression.java
@@ -22,7 +22,7 @@ public class ParameterExpression extends Expression {
private final String name;
- public ParameterExpression(TypeNode type, String name) {
+ public ParameterExpression(TypeDefinition type, String name) {
super(type);
this.name = name;
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Primitive.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Primitive.java
index 61e7ce3..4d6ecb7 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Primitive.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/Primitive.java
@@ -18,7 +18,7 @@ under the License.
*/
package org.apache.plc4x.codegen.ast;
-public class Primitive extends TypeNode {
+public class Primitive extends TypeDefinition {
// Shorthands
public static final Primitive VOID = new Primitive(DataType.VOID);
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/PythonGenerator.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/PythonGenerator.java
index 6eb9314..9e4b17e 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/PythonGenerator.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/PythonGenerator.java
@@ -255,7 +255,7 @@ public class PythonGenerator implements Generator {
writer.endBlock();
}
- @Override public void generateFieldDeclaration(Set<Modifier> modifiers, TypeNode type, String name, Expression initializer) {
+ @Override public void generateFieldDeclaration(Set<Modifier> modifiers, TypeDefinition type, String name, Expression initializer) {
writer.startLine("");
writer.write(name);
writer.write(": ");
@@ -270,7 +270,7 @@ public class PythonGenerator implements Generator {
writer.endLine();
}
- @Override public void generateFieldReference(TypeNode type, String name) {
+ @Override public void generateFieldReference(TypeDefinition type, String name) {
writer.write("self.");
writer.write(name);
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/TypeNode.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/TypeDefinition.java
similarity index 90%
rename from sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/TypeNode.java
rename to sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/TypeDefinition.java
index 5f55cf8..65d195a 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/TypeNode.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/TypeDefinition.java
@@ -19,13 +19,13 @@ under the License.
package org.apache.plc4x.codegen.ast;
/**
- * Stub for the Type System.
+ * Definition of a Type / Class.
*/
-public class TypeNode implements Node {
+public class TypeDefinition implements Node {
private final String typeString;
- public TypeNode(String typeString) {
+ public TypeDefinition(String typeString) {
this.typeString = typeString;
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/TypeUtil.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/TypeUtil.java
index 4d3c308..e27d2aa 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/TypeUtil.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/TypeUtil.java
@@ -20,7 +20,7 @@ package org.apache.plc4x.codegen.ast;
public class TypeUtil {
- public static TypeNode infer(Object o) {
+ public static TypeDefinition infer(Object o) {
if (o instanceof Double) {
return Primitive.DOUBLE;
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/UnknownType.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/UnknownType.java
index 0fd9508..97bb34b 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/UnknownType.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/ast/UnknownType.java
@@ -21,7 +21,7 @@ package org.apache.plc4x.codegen.ast;
/**
* Represents an Unknown Type.
*/
-public class UnknownType extends TypeNode {
+public class UnknownType extends TypeDefinition {
public static final UnknownType INSTANCE = new UnknownType();
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/util/EnumFactory.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/util/EnumFactory.java
index d64bd02..3185007 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/util/EnumFactory.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/util/EnumFactory.java
@@ -53,7 +53,7 @@ public class EnumFactory {
// Now add all these static methods on top
for (EnumEntry enumEntry : enumEntries) {
- final TypeNode clazzType = new TypeNode(desc.getName());
+ final TypeDefinition clazzType = new TypeDefinition(desc.getName());
final String fieldName = enumEntry.getName().toUpperCase();
finalFields.add(new FieldDeclaration(
new HashSet<>(Arrays.asList(Modifier.STATIC, Modifier.FINAL)),
@@ -75,13 +75,13 @@ public class EnumFactory {
return new ClassDeclaration("", desc.getName(), finalFields, Arrays.asList(constructor), methods, null);
}
- static MethodDefinition getGetterDefinition(String name, TypeNode type) {
+ static MethodDefinition getGetterDefinition(String name, TypeDefinition type) {
String getter = "get" + name.substring(0, 1).toUpperCase() + name.substring(1);
Block body = new Block(new ReturnStatement(new FieldReference(type, name)));
return new MethodDefinition(getter, type, Collections.emptyList(), body);
}
- static MethodDefinition getSetterDefinition(String name, TypeNode type) {
+ static MethodDefinition getSetterDefinition(String name, TypeDefinition type) {
String getter = "set" + name.substring(0, 1).toUpperCase() + name.substring(1);
final ParameterExpression param = new ParameterExpression(type, name);
Block body = new Block(Expressions.assignment(new FieldReference(type, name), param));
@@ -133,15 +133,15 @@ public class EnumFactory {
public static class Field {
- private final TypeNode type;
+ private final TypeDefinition type;
private final String name;
- public Field(TypeNode type, String name) {
+ public Field(TypeDefinition type, String name) {
this.type = type;
this.name = name;
}
- public TypeNode getType() {
+ public TypeDefinition getType() {
return type;
}
diff --git a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/util/PojoFactory.java b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/util/PojoFactory.java
index 3370746..775c679 100644
--- a/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/util/PojoFactory.java
+++ b/sandbox/code-gen/src/main/java/org/apache/plc4x/codegen/util/PojoFactory.java
@@ -31,7 +31,7 @@ import static org.apache.plc4x.codegen.util.EnumFactory.getSetterDefinition;
public class PojoFactory {
- private TypeNode BUFFER_TYPE;
+ private TypeDefinition BUFFER_TYPE;
private Method readByte = new Method(BUFFER_TYPE, "readByte", Primitive.INTEGER, Collections.emptyList(), Collections.emptyList());
@@ -58,13 +58,13 @@ public class PojoFactory {
// Encode Method
methods.add(new MethodDefinition("encode", Primitive.VOID, Collections.singletonList(
- new ParameterExpression(new TypeNode("org.apache.plc4x.api.Buffer"), "buffer")
+ new ParameterExpression(new TypeDefinition("org.apache.plc4x.api.Buffer"), "buffer")
), new Block()));
// Decode Method
- BUFFER_TYPE = new TypeNode("org.apache.plc4x.api.Buffer");
+ BUFFER_TYPE = new TypeDefinition("org.apache.plc4x.api.Buffer");
final ParameterExpression buffer = new ParameterExpression(BUFFER_TYPE, "buffer");
- final TypeNode clazz = new TypeNode(desc.getName());
+ final TypeDefinition clazz = new TypeDefinition(desc.getName());
final ParameterExpression instance = new ParameterExpression(clazz, "instance");
methods.add(new MethodDefinition(Collections.singleton(Modifier.STATIC), "decode", clazz, Collections.singletonList(
buffer
@@ -104,15 +104,15 @@ public class PojoFactory {
public static class Field {
- private final TypeNode type;
+ private final TypeDefinition type;
private final String name;
- public Field(TypeNode type, String name) {
+ public Field(TypeDefinition type, String name) {
this.type = type;
this.name = name;
}
- public TypeNode getType() {
+ public TypeDefinition getType() {
return type;
}
diff --git a/sandbox/code-gen/src/test/java/org/apache/plc4x/codegen/ast/JavaGeneratorTest.java b/sandbox/code-gen/src/test/java/org/apache/plc4x/codegen/ast/JavaGeneratorTest.java
index c214c14..530c15c 100644
--- a/sandbox/code-gen/src/test/java/org/apache/plc4x/codegen/ast/JavaGeneratorTest.java
+++ b/sandbox/code-gen/src/test/java/org/apache/plc4x/codegen/ast/JavaGeneratorTest.java
@@ -106,7 +106,7 @@ public class JavaGeneratorTest {
@Test
public void callStaticMethod() {
- final TypeNode myClazz = new TypeNode("MyClazz");
+ final TypeDefinition myClazz = new TypeDefinition("MyClazz");
Expression expr = new CallExpression(new Method(myClazz, "toString", Primitive.VOID, Collections.singletonList(Primitive.DOUBLE), Collections.EMPTY_LIST), null, new ConstantExpression(5.0));
expr.write(generator);
@@ -118,7 +118,7 @@ public class JavaGeneratorTest {
@Test
public void callMethod() {
- final TypeNode myClazz = new TypeNode("MyClazz");
+ final TypeDefinition myClazz = new TypeDefinition("MyClazz");
Expression expr = new CallExpression(new Method(myClazz, "toString", Primitive.VOID, Collections.singletonList(Primitive.DOUBLE), Collections.EMPTY_LIST), new ParameterExpression(myClazz, "a"), new ConstantExpression(5.0));
expr.write(generator);
@@ -130,7 +130,7 @@ public class JavaGeneratorTest {
@Test
public void complexCallAssignment() {
- final TypeNode myClazz = new TypeNode("MyClazz");
+ final TypeDefinition myClazz = new TypeDefinition("MyClazz");
final ParameterExpression instance = new ParameterExpression(myClazz, "instance");
final Method getNumberMethod = new Method(myClazz, "getNumber", Primitive.DOUBLE, Collections.emptyList(), Collections.emptyList());
final Method staticMethod = new Method(myClazz, "staticMethod", Primitive.DOUBLE, Collections.emptyList(), Collections.emptyList());