package nl.uva.softwcons.ql.eval.value; public class BooleanValue extends Value { private final Boolean value; public BooleanValue(final boolean literal) { this.value = literal; } @Override public boolean inConditionalContext() { return this.value; } @Override public Boolean getBoolean() { return value; } @Override public Value isEqual(final Value otherValue) { return otherValue.isEqualBoolean(this); } @Override public Value and(final Value otherValue) { return otherValue.andBoolean(this); } @Override public Value or(final Value otherValue) { return otherValue.orBoolean(this); } @Override public Value not() { return new BooleanValue(!this.value); } @Override public Value andBoolean(final BooleanValue otherValue) { return new BooleanValue(this.value && otherValue.getBoolean()); } @Override public Value orBoolean(final BooleanValue otherValue) { return new BooleanValue(this.value || otherValue.getBoolean()); } @Override public Value isEqualBoolean(final Value otherValue) { return new BooleanValue(this.value.equals(otherValue.getBoolean())); } @Override public Value orUndefined() { return new BooleanValue(this.value); } }