package eu.wietsevenema.lang.oberon.interpreter.values; import eu.wietsevenema.lang.oberon.exceptions.ValueUndefinedException; public class BooleanValue extends Value { private Boolean value; public BooleanValue(Boolean value) { this.value = value; } public void setValue(Boolean value) { this.value = value; } public Boolean getValue() throws ValueUndefinedException { if (this.value == null) { throw new ValueUndefinedException(); } return value; } @Override public boolean equals(Object o) { if (o instanceof BooleanValue) { try { return this.getValue().equals(((BooleanValue) o).getValue()); } catch (ValueUndefinedException e) { return false; } } return false; } @Override public String toString() { if (this.value != null) { return this.value.toString(); } return "NULL"; } @Override public Object clone() { if (value == null) { return new BooleanValue(null); } else { return new BooleanValue(value.booleanValue()); } } @Override public void init() { this.value = false; } }