package nl.uva.se.ql.evaluation.value;
public class BooleanValue extends Value<Boolean> {
public BooleanValue(Boolean value) {
super(value);
}
@Override
public Value and(Value value) {
return value.andBoolean(this);
}
@Override
public BooleanValue andBoolean(BooleanValue value) {
return new BooleanValue(value.getValue() && getValue());
}
@Override
public Value equal(Value value) {
return value.equalBoolean(this);
}
@Override
public BooleanValue equalBoolean(BooleanValue value) {
return new BooleanValue(value.getValue().equals(getValue()));
}
@Override
public BooleanValue not() {
return notBoolean();
}
@Override
public BooleanValue notBoolean() {
return new BooleanValue(!(getValue()));
}
@Override
public Value notEqual(Value value) {
return value.notEqualBoolean(this);
}
@Override
public BooleanValue notEqualBoolean(BooleanValue value) {
return new BooleanValue(!(value.getValue().equals(getValue())));
}
@Override
public BooleanValue or(Value value) {
return orBoolean(this);
}
@Override
public BooleanValue orBoolean(BooleanValue value) {
return new BooleanValue(value.getValue() || getValue());
}
}