code: protected void doNotifyListenersOfChangedValues(int startIndex, List<R> oldItems, List<R> newItems) {
          List<ListValueChangeListener<R>> listenersCopy = new ArrayList<ListValueChangeListener<R>>(listeners);
          List<R> oldUnmodifiable = Collections.unmodifiableList(oldItems);
          List<R> newUnmodifiable = Collections.unmodifiableList(newItems);
          for (ListValueChangeListener<R> listener : listenersCopy) {
              listener.valuesChanged(this, startIndex, oldUnmodifiable, newUnmodifiable);
          }
      }
docs: Notifies the change listeners that items have been replaced.
  <p>
  Note that the specified lists of items will be wrapped in unmodifiable lists before being passed to the
  listeners.
  
  @param startIndex Index of the first replaced item.
  @param oldItems   Previous items.
  @param newItems   New items.