package interdroid.swan.swansong; public class MathValueExpression implements ValueExpression { private ValueExpression mLeft; private ValueExpression mRight; private MathOperator mOperator; private String mLocation; private HistoryReductionMode mMode; public MathValueExpression(String location, ValueExpression left, MathOperator operator, ValueExpression right, HistoryReductionMode mode) { mLocation = location; mLeft = left; mRight = right; mOperator = operator; mMode = mode; } @Override public HistoryReductionMode getHistoryReductionMode() { return mMode; } @Override public String toParseString() { return "(" + mLeft.toParseString() + " " + mOperator.toParseString() + " " + mRight.toParseString() + ")"; } public ValueExpression getLeft() { return mLeft; } public ValueExpression getRight() { return mRight; } public MathOperator getOperator() { return mOperator; } @Override public String getLocation() { return mLocation; } @Override public void setInferredLocation(String location) { if (mLocation.equals(Expression.LOCATION_INFER)) { mLocation = location; return; } throw new RuntimeException( "Please don't use this method. For internal use only."); } }