code: public <T extends Iterable<?>> T noNullElements(final T iterable, final String message, final Object... values) {
          notNull(iterable);
          final int index = indexOfNullElement(iterable);
          if (index != -1) {
              fail(String.format(message, ArrayUtils.addAll(this, values, index)));
          }
  
          return iterable;
      }
docs: <p>Validate that the specified argument iterable is neither {@code null} nor contains any elements that are {@code null}; otherwise throwing an exception with the specified message. </p>
  <pre>Validate.noNullElements(myCollection, "The collection contains null at position %d");</pre>
  <p>If the iterable is {@code null}, then the message in the exception is &quot;The validated object is null&quot;.</p><p>If the iterable has a {@code null} element, then the iteration index of
  the invalid element is appended to the {@code values} argument.</p>
  
  @param <T>
  the iterable type
  @param iterable
  the iterable to check, validated not null by this method
  @param message
  the {@link String#format(String, Object...)} exception message if invalid, not null
  @param values
  the optional values for the formatted exception message, null array not recommended
  
  @return the validated iterable (never {@code null} method for chaining)
  
  @throws NullPointerValidationException
  if the array is {@code null}
  @throws IllegalArgumentException
  if an element is {@code null}
  @see #noNullElements(Iterable)