package ql.semantics.values; /** * Created by bore on 16/02/15. */ public class BoolValue extends Value<Boolean> { public BoolValue(boolean value) { super(value); } @Override public Value not() { return new BoolValue(!(this.getValue())); } @Override public Value and(Value v) { return v.andBoolean(this); } @Override public Value andBoolean(BoolValue v) { return new BoolValue(v.getValue() && this.getValue()); } @Override public Value or(Value v) { return v.orBoolean(this); } @Override public Value orBoolean(BoolValue v) { return new BoolValue(v.getValue() || this.getValue()); } @Override public Value equ(Value v) { return v.equBoolean(this); } @Override public Value equBoolean(BoolValue v) { return new BoolValue(v.getValue().equals(this.getValue())); } @Override public Value notEqu(Value v) { return v.notEquBoolean(this); } @Override public Value notEquBoolean(BoolValue v) { return new BoolValue(!(v.getValue().equals(this.getValue()))); } @Override public <T> T accept (ValueVisitor<T> visitor) { return visitor.visit(this); } }