package nl.uva.softwcons.ql.eval.value;
public final class UndefinedValue extends Value {
public static final UndefinedValue UNDEFINED = new UndefinedValue();
private UndefinedValue() {
}
@Override
public boolean inConditionalContext() {
return false;
}
@Override
public Value add(final Value otherValue) {
return UNDEFINED;
}
@Override
public Value subtract(final Value otherValue) {
return UNDEFINED;
}
@Override
public Value multiply(final Value otherValue) {
return UNDEFINED;
}
@Override
public Value divide(final Value otherValue) {
return UNDEFINED;
}
@Override
public Value isEqual(final Value otherValue) {
return UNDEFINED;
}
@Override
public Value isEqualBoolean(final Value otherValue) {
return UNDEFINED;
}
@Override
public Value isEqualString(final Value otherValue) {
return UNDEFINED;
}
@Override
public Value isGreater(final Value otherValue) {
return UNDEFINED;
}
@Override
public Value isLower(final Value otherValue) {
return UNDEFINED;
}
@Override
public Value isGreaterOrEqual(final Value otherValue) {
return UNDEFINED;
}
@Override
public Value isLowerOrEqual(final Value otherValue) {
return UNDEFINED;
}
@Override
public Value and(final Value otherValue) {
return UNDEFINED;
}
@Override
public Value or(final Value otherValue) {
return otherValue.orUndefined();
}
@Override
public Value not() {
return UNDEFINED;
}
@Override
public Value addNumber(final NumberValue otherValue) {
return UNDEFINED;
}
@Override
public Value subtractNumber(final NumberValue otherValue) {
return UNDEFINED;
}
@Override
public Value multiplyNumber(final NumberValue otherValue) {
return UNDEFINED;
}
@Override
public Value divideNumber(final NumberValue otherValue) {
return UNDEFINED;
}
@Override
public Value isEqualNumber(final NumberValue otherValue) {
return UNDEFINED;
}
@Override
public Value isGreaterNumber(final NumberValue otherValue) {
return UNDEFINED;
}
@Override
public Value isLowerNumber(final NumberValue otherValue) {
return UNDEFINED;
}
@Override
public Value isGreaterOrEqualNumber(final NumberValue otherValue) {
return UNDEFINED;
}
@Override
public Value isLowerOrEqualNumber(final NumberValue otherValue) {
return UNDEFINED;
}
@Override
public Value andBoolean(final BooleanValue otherValue) {
return UNDEFINED;
}
@Override
public Value orBoolean(final BooleanValue otherValue) {
if (otherValue.getBoolean()) {
return new BooleanValue(true);
}
return UNDEFINED;
}
@Override
public Value orUndefined() {
return UNDEFINED;
}
}