public void setValue(Object newValue) {
        Object checkedValue = checkValue(newValue);
        setDirty(isDifferent(baseValue, checkedValue));
        if (isDifferent(value, checkedValue)){ // firePropertyChange doesn't do this check sufficiently
            firePropertyChange(VALUE, value, value = checkedValue); // set inline to avoid recursion
        }
    }
public void setValue(Object newValue) {
        Object checkedValue = checkValue(newValue);
        setDirty(isDifferent(baseValue, checkedValue));
        if (isDifferent(value, checkedValue)){
            firePropertyChange(VALUE, value, value = checkedValue);
        }
    }
public void setvalue(object newvalue) { object checkedvalue = checkvalue(newvalue); setdirty(isdifferent(basevalue, checkedvalue)); if (isdifferent(value, checkedvalue)){ firepropertychange(value, value, value = checkedvalue); } }