code: public static <S extends Iterator<? extends T>, T> Iterator<T> 
          iteratorOverIterators(Iterator<S> iteratorsIterator)
      {
          Objects.requireNonNull(iteratorsIterator, 
              "The iteratorsIterator is null");
          return new CombiningIterator<T>(iteratorsIterator);
      }
docs: Returns an iterator that combines the iterators
  that are returned by the given iterator.
  
  @param <S> The iterator type
  @param <T> The element type
  @param iteratorsIterator The iterator iterator. May not provide
  <code>null</code> iterators.
  @return The iterator