code: public void update (T value)
      {
          // store our new current value
          _value = value;
  
          // notify our listeners; we snapshot our listeners before iterating to avoid problems if
          // listeners add or remove themselves while we're dispatching this notification
          for (Listener<T> listener : new ArrayList<Listener<T>>(_listeners)) {
              listener.valueChanged(value);
          }
      }
docs: Updates this value and notifies all listeners. This will notify the listeners regardless of
  whether the supplied value differs from the current value.