package org.geogebra.common.kernel.arithmetic; import java.util.HashSet; import org.geogebra.common.kernel.Kernel; import org.geogebra.common.kernel.StringTemplate; import org.geogebra.common.kernel.commands.EvalInfo; import org.geogebra.common.kernel.geos.GeoElement; /** * Fake expression value for storing the result type in expression node * */ public class Resolution implements ExpressionValue { private ValueType type; private int listDepth = 0; /** * @param listDepth * depth of nested lists */ public void setListDepth(int listDepth) { this.listDepth = listDepth; } /** * @param type * result type */ public void setType(ValueType type) { this.type = type; } @Override public boolean isConstant() { // TODO Auto-generated method stub return false; } @Override public boolean isLeaf() { // TODO Auto-generated method stub return false; } @Override public boolean isNumberValue() { // TODO Auto-generated method stub return false; } @Override public boolean evaluatesToNonComplex2DVector() { return type == ValueType.NONCOMPLEX2D; } @Override public boolean evaluatesToVectorNotPoint() { // TODO Auto-generated method stub return false; } @Override public boolean evaluatesTo3DVector() { return type == ValueType.VECTOR3D; } @Override public boolean evaluatesToList() { // TODO Auto-generated method stub return false; } @Override public int getListDepth() { return listDepth; } @Override public boolean evaluatesToText() { // TODO Auto-generated method stub return false; } @Override public boolean isExpressionNode() { // TODO Auto-generated method stub return false; } @Override public boolean isGeoElement() { // TODO Auto-generated method stub return false; } @Override public boolean isVariable() { // TODO Auto-generated method stub return false; } @Override public boolean isInTree() { // TODO Auto-generated method stub return false; } @Override public void setInTree(boolean flag) { // TODO Auto-generated method stub } @Override public boolean contains(ExpressionValue ev) { // TODO Auto-generated method stub return false; } @Override public ExpressionValue deepCopy(Kernel kernel) { return this; } @Override public double evaluateDouble() { return 0; } @Override public ExpressionValue evaluate(StringTemplate tpl) { return this; } @Override public HashSet<GeoElement> getVariables() { // TODO Auto-generated method stub return null; } @Override public String toOutputValueString(StringTemplate tpl) { return ""; } @Override public String toLaTeXString(boolean symbolic, StringTemplate tpl) { return ""; } @Override public void resolveVariables(EvalInfo info) { // has no variables } @Override public String toString(StringTemplate tpl) { return ""; } @Override public String toValueString(StringTemplate tpl) { // TODO Auto-generated method stub return ""; } @Override public ExpressionValue traverse(Traversing t) { return this; } @Override public boolean inspect(Inspecting t) { return false; } @Override public ExpressionValue unwrap() { return null; } @Override public ExpressionNode wrap() { return null; } @Override public boolean hasCoords() { return false; } @Override public ExpressionValue derivative(FunctionVariable fv, Kernel kernel) { return null; } @Override public ExpressionValue integral(FunctionVariable fv, Kernel kernel) { return null; } @Override public boolean evaluatesToNumber(boolean def) { return false; } @Override public String getAssignmentOperator() { return ":"; } @Override public ValueType getValueType() { return type; } @Override public ExpressionValue getUndefinedCopy(Kernel kernel) { Resolution res = new Resolution(); res.listDepth = this.listDepth; res.type = this.type; return res; } @Override public ExpressionValue toValidExpression() { return this; } @Override public boolean evaluatesToNDVector() { // TODO Auto-generated method stub return evaluatesTo3DVector() || evaluatesToNonComplex2DVector(); } }