From 72de605659f196ebc5f856e7de43d676f2272c8e Mon Sep 17 00:00:00 2001 From: Riccardo Azzolini Date: Sat, 6 Oct 2018 10:31:34 +0200 Subject: [PATCH] Define FunctionVisitor and corresponding accept method --- .../it/cavallium/warppi/math/Function.java | 9 ++++ .../warppi/math/FunctionVisitor.java | 41 +++++++++++++++++++ .../warppi/math/functions/Division.java | 6 +++ .../warppi/math/functions/EmptyNumber.java | 6 +++ .../warppi/math/functions/Expression.java | 6 +++ .../cavallium/warppi/math/functions/Joke.java | 6 +++ .../warppi/math/functions/Logarithm.java | 6 +++ .../warppi/math/functions/Multiplication.java | 10 +++-- .../warppi/math/functions/Negative.java | 10 +++-- .../warppi/math/functions/Number.java | 6 +++ .../warppi/math/functions/Power.java | 6 +++ .../cavallium/warppi/math/functions/Root.java | 6 +++ .../warppi/math/functions/RootSquare.java | 6 +++ .../warppi/math/functions/Subtraction.java | 10 +++-- .../cavallium/warppi/math/functions/Sum.java | 9 ++-- .../warppi/math/functions/SumSubtraction.java | 10 +++-- .../warppi/math/functions/Undefined.java | 6 +++ .../warppi/math/functions/Variable.java | 6 +++ .../math/functions/equations/Equation.java | 6 +++ .../functions/equations/EquationsSystem.java | 6 +++ .../equations/EquationsSystemPart.java | 6 +++ .../functions/trigonometry/ArcCosine.java | 6 +++ .../math/functions/trigonometry/ArcSine.java | 6 +++ .../functions/trigonometry/ArcTangent.java | 6 +++ .../math/functions/trigonometry/Cosine.java | 6 +++ .../math/functions/trigonometry/Sine.java | 6 +++ .../math/functions/trigonometry/Tangent.java | 6 +++ 27 files changed, 199 insertions(+), 20 deletions(-) create mode 100644 core/src/main/java/it/cavallium/warppi/math/FunctionVisitor.java diff --git a/core/src/main/java/it/cavallium/warppi/math/Function.java b/core/src/main/java/it/cavallium/warppi/math/Function.java index 43bfdc32..9a72fb64 100644 --- a/core/src/main/java/it/cavallium/warppi/math/Function.java +++ b/core/src/main/java/it/cavallium/warppi/math/Function.java @@ -80,4 +80,13 @@ public interface Function { * @throws Error */ ObjectArrayList toBlock(MathContext context) throws Error; + + /** + * Accepts a FunctionVisitor by calling the correct overload of visit. + * + * @param visitor The visitor to be accepted. + * @param The return type of the visit method. + * @return The value returned by visit. + */ + T accept(FunctionVisitor visitor); } diff --git a/core/src/main/java/it/cavallium/warppi/math/FunctionVisitor.java b/core/src/main/java/it/cavallium/warppi/math/FunctionVisitor.java new file mode 100644 index 00000000..34a5eebf --- /dev/null +++ b/core/src/main/java/it/cavallium/warppi/math/FunctionVisitor.java @@ -0,0 +1,41 @@ +package it.cavallium.warppi.math; + +import it.cavallium.warppi.math.functions.*; +import it.cavallium.warppi.math.functions.Number; +import it.cavallium.warppi.math.functions.equations.Equation; +import it.cavallium.warppi.math.functions.equations.EquationsSystem; +import it.cavallium.warppi.math.functions.equations.EquationsSystemPart; +import it.cavallium.warppi.math.functions.trigonometry.*; + +/** + * Executes a different overload of a method for each Function implementation. + * + * @param The return type of all visit method overloads. + */ +public interface FunctionVisitor { + T visit(ArcCosine arcCosine); + T visit(ArcSine arcSine); + T visit(ArcTangent arcTangent); + T visit(Cosine cosine); + T visit(Division division); + T visit(EmptyNumber emptyNumber); + T visit(Equation equation); + T visit(EquationsSystem equationsSystem); + T visit(EquationsSystemPart equationsSystemPart); + T visit(Expression expression); + T visit(Joke joke); + T visit(Logarithm logarithm); + T visit(Multiplication multiplication); + T visit(Negative negative); + T visit(Number number); + T visit(Power power); + T visit(Root root); + T visit(RootSquare rootSquare); + T visit(Sine sine); + T visit(Subtraction subtraction); + T visit(SumSubtraction sumSubtraction); + T visit(Sum sum); + T visit(Tangent tangent); + T visit(Undefined undefined); + T visit(Variable variable); +} diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Division.java b/core/src/main/java/it/cavallium/warppi/math/functions/Division.java index 5a052d81..6baeeabc 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Division.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Division.java @@ -5,6 +5,7 @@ import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.blocks.BlockDivision; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -59,4 +60,9 @@ public class Division extends FunctionOperator { result.add(bd); return result; } + + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } } \ No newline at end of file diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/EmptyNumber.java b/core/src/main/java/it/cavallium/warppi/math/functions/EmptyNumber.java index 7b0327f0..656446c8 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/EmptyNumber.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/EmptyNumber.java @@ -2,6 +2,7 @@ package it.cavallium.warppi.math.functions; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.util.Error; @@ -56,4 +57,9 @@ public class EmptyNumber implements Function { return null; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Expression.java b/core/src/main/java/it/cavallium/warppi/math/functions/Expression.java index 3a9cc844..72aabb89 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Expression.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Expression.java @@ -5,6 +5,7 @@ import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.blocks.BlockParenthesis; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.trigonometry.ArcCosine; import it.cavallium.warppi.math.functions.trigonometry.ArcSine; @@ -582,6 +583,11 @@ public class Expression extends FunctionSingle { return result; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + @Override public String toString() { String s = "("; diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Joke.java b/core/src/main/java/it/cavallium/warppi/math/functions/Joke.java index 37b4de44..8065ee6a 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Joke.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Joke.java @@ -2,6 +2,7 @@ package it.cavallium.warppi.math.functions; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.util.Error; @@ -61,4 +62,9 @@ public class Joke implements Function { throw new Error(Errors.NOT_IMPLEMENTED, "Unknown function " + getClass().getSimpleName()); } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Logarithm.java b/core/src/main/java/it/cavallium/warppi/math/functions/Logarithm.java index d4db8775..04bcd65b 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Logarithm.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Logarithm.java @@ -5,6 +5,7 @@ import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.blocks.BlockLogarithm; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -55,4 +56,9 @@ public class Logarithm extends FunctionOperator { return result; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Multiplication.java b/core/src/main/java/it/cavallium/warppi/math/functions/Multiplication.java index b1d24858..6e632af4 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Multiplication.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Multiplication.java @@ -3,10 +3,7 @@ package it.cavallium.warppi.math.functions; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockChar; import it.cavallium.warppi.gui.expression.blocks.BlockParenthesis; -import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.MathematicalSymbols; +import it.cavallium.warppi.math.*; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -87,6 +84,11 @@ public class Multiplication extends FunctionOperator { } } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + public boolean isNegative() { return parameter1.equals(new Number(getMathContext(), -1)) || parameter2.equals(new Number(getMathContext(), -1)); } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Negative.java b/core/src/main/java/it/cavallium/warppi/math/functions/Negative.java index f963b976..a6733547 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Negative.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Negative.java @@ -3,10 +3,7 @@ package it.cavallium.warppi.math.functions; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockChar; import it.cavallium.warppi.gui.expression.blocks.BlockParenthesis; -import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionSingle; -import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.MathematicalSymbols; +import it.cavallium.warppi.math.*; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -52,4 +49,9 @@ public class Negative extends FunctionSingle { return blocks; // throw new Error(Errors.NOT_IMPLEMENTED, "Unknown function " + getClass().getSimpleName()); } + + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Number.java b/core/src/main/java/it/cavallium/warppi/math/functions/Number.java index dbeb3d9b..a6398d2a 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Number.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Number.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; import java.math.BigInteger; import java.util.LinkedList; +import it.cavallium.warppi.math.FunctionVisitor; import org.nevec.rjm.BigDecimalMath; import it.cavallium.warppi.gui.expression.blocks.Block; @@ -273,6 +274,11 @@ public class Number implements Function { return result; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + @Override public Function setParameter(final int index, final Function var) throws IndexOutOfBoundsException { throw new IndexOutOfBoundsException(); diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Power.java b/core/src/main/java/it/cavallium/warppi/math/functions/Power.java index 58aec371..15940748 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Power.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Power.java @@ -5,6 +5,7 @@ import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.blocks.BlockPower; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -50,4 +51,9 @@ public class Power extends FunctionOperator { result.add(bp); return result; } + + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Root.java b/core/src/main/java/it/cavallium/warppi/math/functions/Root.java index 25b118a4..0ab1d6f6 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Root.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Root.java @@ -3,6 +3,7 @@ package it.cavallium.warppi.math.functions; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.util.Error; import it.cavallium.warppi.util.Errors; @@ -39,4 +40,9 @@ public class Root extends FunctionOperator { throw new Error(Errors.NOT_IMPLEMENTED, "Unknown function " + getClass().getSimpleName()); } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/RootSquare.java b/core/src/main/java/it/cavallium/warppi/math/functions/RootSquare.java index 30a7351a..2a1afa2f 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/RootSquare.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/RootSquare.java @@ -5,6 +5,7 @@ import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.blocks.BlockSquareRoot; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -48,4 +49,9 @@ public class RootSquare extends FunctionOperator { return result; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Subtraction.java b/core/src/main/java/it/cavallium/warppi/math/functions/Subtraction.java index daa0a77f..452fbfc4 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Subtraction.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Subtraction.java @@ -2,10 +2,7 @@ package it.cavallium.warppi.math.functions; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockChar; -import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.MathematicalSymbols; +import it.cavallium.warppi.math.*; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -43,4 +40,9 @@ public class Subtraction extends FunctionOperator { return result; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } \ No newline at end of file diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Sum.java b/core/src/main/java/it/cavallium/warppi/math/functions/Sum.java index 3bcff91c..36ff3814 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Sum.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Sum.java @@ -2,10 +2,7 @@ package it.cavallium.warppi.math.functions; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockChar; -import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.MathematicalSymbols; +import it.cavallium.warppi.math.*; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -47,4 +44,8 @@ public class Sum extends FunctionOperator { return result; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/SumSubtraction.java b/core/src/main/java/it/cavallium/warppi/math/functions/SumSubtraction.java index ef5a7e47..35d04df9 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/SumSubtraction.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/SumSubtraction.java @@ -2,10 +2,7 @@ package it.cavallium.warppi.math.functions; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockChar; -import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.MathematicalSymbols; +import it.cavallium.warppi.math.*; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -43,4 +40,9 @@ public class SumSubtraction extends FunctionOperator { return result; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Undefined.java b/core/src/main/java/it/cavallium/warppi/math/functions/Undefined.java index 38ecd971..93d74f38 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Undefined.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Undefined.java @@ -3,6 +3,7 @@ package it.cavallium.warppi.math.functions; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockUndefined; import it.cavallium.warppi.math.Function; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.util.Error; @@ -58,6 +59,11 @@ public class Undefined implements Function { return result; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + @Override public String toString() { return "UNDEFINED"; diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Variable.java b/core/src/main/java/it/cavallium/warppi/math/functions/Variable.java index 119f8631..885992f7 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Variable.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Variable.java @@ -3,6 +3,7 @@ package it.cavallium.warppi.math.functions; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockChar; import it.cavallium.warppi.math.Function; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.util.Error; @@ -130,4 +131,9 @@ public class Variable implements Function { result.add(new BlockChar(getChar())); return result; } + + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/equations/Equation.java b/core/src/main/java/it/cavallium/warppi/math/functions/equations/Equation.java index 8fbd50bf..7232a69c 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/equations/Equation.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/equations/Equation.java @@ -7,6 +7,7 @@ import java.util.Set; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.solver.SolveMethod; import it.cavallium.warppi.util.Error; @@ -68,4 +69,9 @@ public class Equation extends FunctionOperator { return null; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } \ No newline at end of file diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystem.java b/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystem.java index 16d238b3..a79c2bda 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystem.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystem.java @@ -3,6 +3,7 @@ package it.cavallium.warppi.math.functions.equations; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionDynamic; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -46,4 +47,9 @@ public class EquationsSystem extends FunctionDynamic { return null; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystemPart.java b/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystemPart.java index 0d18fc46..e6670fb3 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystemPart.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystemPart.java @@ -2,6 +2,7 @@ package it.cavallium.warppi.math.functions.equations; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.FunctionSingle; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -34,4 +35,9 @@ public class EquationsSystemPart extends FunctionSingle { return null; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcCosine.java b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcCosine.java index 46b244a8..ed722ba8 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcCosine.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcCosine.java @@ -3,6 +3,7 @@ package it.cavallium.warppi.math.functions.trigonometry; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.util.Error; import it.cavallium.warppi.util.Errors; @@ -38,4 +39,9 @@ public class ArcCosine extends FunctionSingle { throw new Error(Errors.NOT_IMPLEMENTED, "Unknown function " + getClass().getSimpleName()); } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcSine.java b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcSine.java index 87e0cb2d..8989c5a3 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcSine.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcSine.java @@ -3,6 +3,7 @@ package it.cavallium.warppi.math.functions.trigonometry; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.util.Error; import it.cavallium.warppi.util.Errors; @@ -38,4 +39,9 @@ public class ArcSine extends FunctionSingle { throw new Error(Errors.NOT_IMPLEMENTED, "Unknown function " + getClass().getSimpleName()); } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcTangent.java b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcTangent.java index b37af1ea..0064b546 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcTangent.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcTangent.java @@ -3,6 +3,7 @@ package it.cavallium.warppi.math.functions.trigonometry; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.util.Error; import it.cavallium.warppi.util.Errors; @@ -38,4 +39,9 @@ public class ArcTangent extends FunctionSingle { throw new Error(Errors.NOT_IMPLEMENTED, "Unknown function " + getClass().getSimpleName()); } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Cosine.java b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Cosine.java index 4ed7ddd3..d00c65c6 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Cosine.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Cosine.java @@ -3,6 +3,7 @@ package it.cavallium.warppi.math.functions.trigonometry; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.util.Error; import it.cavallium.warppi.util.Errors; @@ -38,4 +39,9 @@ public class Cosine extends FunctionSingle { throw new Error(Errors.NOT_IMPLEMENTED, "Unknown function " + getClass().getSimpleName()); } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Sine.java b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Sine.java index 2fcda089..b1c99ffa 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Sine.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Sine.java @@ -5,6 +5,7 @@ import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.blocks.BlockSine; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -51,4 +52,9 @@ public class Sine extends FunctionSingle { return result; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + } diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Tangent.java b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Tangent.java index d9cca7cc..c224fb89 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Tangent.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Tangent.java @@ -3,6 +3,7 @@ package it.cavallium.warppi.math.functions.trigonometry; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; +import it.cavallium.warppi.math.FunctionVisitor; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -37,4 +38,9 @@ public class Tangent extends FunctionSingle { return null; } + @Override + public T accept(FunctionVisitor visitor) { + return visitor.visit(this); + } + }