package nl.uva.polyql.ast.expressions.operations; import nl.uva.polyql.ast.values.BooleanValue; import nl.uva.polyql.ast.values.InvalidValue; import nl.uva.polyql.ast.values.NumberValue; import nl.uva.polyql.ast.values.StringValue; import nl.uva.polyql.ast.values.Value; import nl.uva.polyql.utils.SyntaxKey; public abstract class UnaryOperator implements SyntaxKey { public Value<?> performOperation(final UnaryOperation operation) { return operation.getExpression().getValue().performUnaryOperation(this); } public Value<?> performOperation(final BooleanValue value) { return new InvalidValue(); } public Value<?> performOperation(final NumberValue value) { return new InvalidValue(); } public Value<?> performOperation(final StringValue value) { return new InvalidValue(); } @Override public String toString() { return getSyntax(); } }