code: public void updateIf (T value)
      {
          if (value == null || !value.equals(_value)) {
              update(value);
          }
      }
docs: Updates this value and notifies all listeners if the supplied value differs from the current
  value (via the {@link Object#equals} contract).