code: public static <E, T extends Collection<E>> T addAll(T collection, Iterable<E> iterable) {
  
   		Assert.notNull(collection, "Collection is required");
  
   		for (E element : nullSafeIterable(iterable)) {
   			collection.add(element);
   		}
  
   		return collection;
   	}
docs: Adds all elements from the given {@link Iterable} to the {@link Collection}.
  
  @param <E> {@link Class} type of the elements in the {@link Collection} and {@link Iterable}.
  @param <T> concrete {@link Class} type of the {@link Collection}.
  @param collection {@link Collection} in which to add the elements from the {@link Iterable}.
  @param iterable {@link Iterable} containing the elements to add to the {@link Collection}.
  @return the given {@link Collection}.
  @throws IllegalArgumentException if {@link Collection} is {@literal null}.
  @see java.lang.Iterable
  @see java.util.Collection