diff --git a/src/main/java/models/algebra/Constant.java b/src/main/java/models/algebra/Constant.java index cec5666..654d3a3 100644 --- a/src/main/java/models/algebra/Constant.java +++ b/src/main/java/models/algebra/Constant.java @@ -1,7 +1,5 @@ package models.algebra; -import generators.JavaImplementationVisitor; - import java.util.ArrayList; public class Constant extends Term { @@ -43,8 +41,8 @@ return symbol.getName(); } - public String toImplementation(String[] sideEffects) { - return accept(new JavaImplementationVisitor(), sideEffects).toString(); + public String toImplementation(String[] sideEffects, IExpressionVisitor expressionVisitor) { + return accept(expressionVisitor, sideEffects).toString(); } @Override diff --git a/src/main/java/models/algebra/Expression.java b/src/main/java/models/algebra/Expression.java index 664cadb..26585e0 100644 --- a/src/main/java/models/algebra/Expression.java +++ b/src/main/java/models/algebra/Expression.java @@ -40,7 +40,7 @@ * @param sideEffects an array with an optional implementation that should be written before the evaluation of this expression * @return the implementation to represent the value of this expression */ - public String toImplementation(String[] sideEffects) { + public String toImplementation(String[] sideEffects, IExpressionVisitor expressionVisitor) { return toString(); } } diff --git a/src/main/java/models/algebra/Field.java b/src/main/java/models/algebra/Field.java index ff7b339..2f84dc9 100644 --- a/src/main/java/models/algebra/Field.java +++ b/src/main/java/models/algebra/Field.java @@ -1,7 +1,5 @@ package models.algebra; -import generators.JavaImplementationVisitor; - /** * A field in the implementation (regarded as a constant in the algebraic system) * @@ -41,8 +39,8 @@ return new Field(symbol); } - public String toImplementation(String[] sideEffects) { - return accept(new JavaImplementationVisitor(), sideEffects).toString(); + public String toImplementation(String[] sideEffects, IExpressionVisitor expressionVisitor) { + return accept(expressionVisitor, sideEffects).toString(); } @Override diff --git a/src/main/java/models/algebra/IExpressionVisitor.java b/src/main/java/models/algebra/IExpressionVisitor.java index 4c30c09..9d42ec2 100644 --- a/src/main/java/models/algebra/IExpressionVisitor.java +++ b/src/main/java/models/algebra/IExpressionVisitor.java @@ -1,8 +1,5 @@ package models.algebra; -import models.dataConstraintModel.JsonAccessor; -import models.dataConstraintModel.JsonTerm; - public interface IExpressionVisitor { T visit(Term term, String[] sideEffects); @@ -11,8 +8,4 @@ T visit(Constant constant, String[] sideEffects); T visit(Variable variable, String[] sideEffects); - - T visit(JsonTerm jsonTerm, String[] sideEffects); - - T visit(JsonAccessor jsonAccessor, String[] sideEffects); } diff --git a/src/main/java/models/algebra/Term.java b/src/main/java/models/algebra/Term.java index 3a74b89..550ef64 100644 --- a/src/main/java/models/algebra/Term.java +++ b/src/main/java/models/algebra/Term.java @@ -1,7 +1,5 @@ package models.algebra; -import generators.JavaImplementationVisitor; - import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -311,8 +309,8 @@ } } - public String toImplementation(String[] sideEffects) { - return accept(new JavaImplementationVisitor(), sideEffects).toString(); + public String toImplementation(String[] sideEffects, IExpressionVisitor expressionVisitor) { + return accept(expressionVisitor, sideEffects).toString(); } @Override diff --git a/src/main/java/models/algebra/Variable.java b/src/main/java/models/algebra/Variable.java index bc07e42..f05a1e2 100644 --- a/src/main/java/models/algebra/Variable.java +++ b/src/main/java/models/algebra/Variable.java @@ -1,7 +1,5 @@ package models.algebra; -import generators.JavaImplementationVisitor; - import java.util.HashMap; public class Variable extends Expression { @@ -83,8 +81,8 @@ return name + ":" + type.getTypeName(); } - public String toImplementation(String[] sideEffects) { - return accept(new JavaImplementationVisitor(), sideEffects).toString(); + public String toImplementation(String[] sideEffects, IExpressionVisitor expressionVisitor) { + return accept(expressionVisitor, sideEffects).toString(); } @Override