code: public <X> DataSource<X> fromCollection(Iterator<X> data, TypeInformation<X> type) {
  		return new DataSource<>(this, new IteratorInputFormat<>(data), type, Utils.getCallLocationName());
  	}
docs: Creates a DataSet from the given iterator. Because the iterator will remain unmodified until
  the actual execution happens, the type of data returned by the iterator must be given
  explicitly in the form of the type information. This method is useful for cases where the type
  is generic. In that case, the type class (as given in {@link #fromCollection(Iterator, Class)}
  does not supply all type information.
  
  <p>Note that this operation will result in a non-parallel data source, i.e. a data source with
  a parallelism of one.
  
  @param data The collection of elements to create the data set from.
  @param type The TypeInformation for the produced data set.
  @return A DataSet representing the elements in the iterator.
  
  @see #fromCollection(Iterator, Class)