package ch.akuhn.values; import java.util.EventObject; public class ReferenceValue<V> extends AbstractValue<V> implements ValueChangedListener { protected V value; public void setValue(V value) { V prev = this.value; this.value = value; if (!Values.equal(prev, value)) this.changed(); } public ReferenceValue() { this.value = null; } public ReferenceValue(V value) { this.value = value; } @Override public Throwable getError() { return null; } @Override public void setError(Throwable error) { throw new UnsupportedOperationException(); } @Override public V getValue() { return value; } @Override public void valueChanged(EventObject event) { // ignore } }