package ast.evaluate; public class Bool extends Value{ private final boolean value; public Bool(boolean value) { this.value = value; } public boolean getValue() { return value; } @Override public Value and(Value obj) { return obj.andBool(this); } @Override public Value andBool(Bool obj) { return new Bool(obj.getValue() && getValue()); } @Override public Value or(Value obj) { return obj.orBool(this); } @Override public Value orBool(Bool obj) { return new Bool(obj.getValue() || getValue()); } @Override public Value eq(Value obj) { return obj.eqBool(this); } @Override protected Value eqBool(Bool obj) { return new Bool(obj.getValue() == getValue()); } @Override public Value neq(Value obj) { return obj.neqBool(this); } @Override protected Value neqBool(Bool obj) { return new Bool(obj.getValue() != getValue()); } @Override public Value not() { return new Bool(!getValue()); } }