code: protected void maybeNotifyListeners(R oldValue, R newValue) {
          if (!ValueUtils.areEqual(oldValue, newValue)) {
              notifyListenersIfUninhibited(oldValue, newValue);
          }
      }
docs: Notifies the listeners that the property value has changed, if all the conditions are fulfilled (typically, if
  the old and new values are different, and if the property is not inhibited).
  <p>
  Sub-classes should typically call this method when they are ready to fire value change events.
  <p>
  However, sub-classes may override this method to perform additional checks.
  
  @param oldValue Previous value.
  @param newValue New value.
  
  @see #notifyListenersIfUninhibited(Object, Object)
  @see #doNotifyListeners(Object, Object)