public boolean hasChanged() { return !(fState == fOldState);
public boolean hasChanged() { return hasStateChanged() || ((fValue != null) && (fInitialValue != null) && !fInitialValue.equals(fValue)) || ((fKey != null) && (fInitialKey != null) && !fInitialKey.equals(fKey)) || ((fInitialValue == null) && (fValue != null));
    public boolean hasChanged() {             return !(fState == fOldState);    }