code: public void addAll(@NonNull Collection<? extends T> collection) {
          synchronized (mLock) {
              if (mOriginalValues != null) {
                  mOriginalValues.addAll(collection);
              } else {
                  mObjects.addAll(collection);
              }
          }
          if (mNotifyOnChange) notifyDataSetChanged();
      }
docs: Adds the specified Collection at the end of the array.
  
  @param collection The Collection to add at the end of the array.
  @throws UnsupportedOperationException if the <tt>addAll</tt> operation
  is not supported by this list
  @throws ClassCastException if the class of an element of the specified
  collection prevents it from being added to this list
  @throws NullPointerException if the specified collection contains one
  or more null elements and this list does not permit null
  elements, or if the specified collection is null
  @throws IllegalArgumentException if some property of an element of the
  specified collection prevents it from being added to this list