package net.iplantevin.ql.ast.expressions.operators; import net.iplantevin.ql.ast.LineInfo; import net.iplantevin.ql.ast.expressions.Expression; import net.iplantevin.ql.ast.types.BooleanType; import net.iplantevin.ql.ast.types.Type; import net.iplantevin.ql.ast.typechecking.TypeEnvironment; import net.iplantevin.ql.ast.visitors.IExpressionVisitor; /** * Negation. Type is Integer. * * @author Ivan */ public class Not extends Unary { public Not(Expression expression, LineInfo lineInfo) { super(expression, lineInfo); } @Override public Type getType(TypeEnvironment idTypeStore) { return new BooleanType(); } @Override public String toString() { return "!" + getExpression(); } @Override public <T> T accept(IExpressionVisitor<T> visitor) { return visitor.visit(this); } }