code: public static <T> CloseableIterator<T> from(final Iterator<T> iterator) {
          if(iterator instanceof CloseableIterator) {
              return (CloseableIterator<T>)iterator;
          }
  
          return new CloseableIterator<T>() {
              @Override
              public void close() {
                  // Do nothing
              }
  
              @Override
              public boolean hasNext() {
                  return iterator.hasNext();
              }
  
              @Override
              public T next() {
                  return iterator.next();
              }
  
              @Override
              public void remove() {
                  iterator.remove();
              }
          };
      }
docs: Creates a {@link com.merakianalytics.datapipelines.iterators.CloseableIterator} wrapper around the provided {@link java.util.Iterator}
  
  @param <T>
  the type of the {@link java.util.Iterator}
  @param iterator
  the {@link java.util.Iterator} to wrap in a {@link com.merakianalytics.datapipelines.iterators.CloseableIterator}
  @return a {@link com.merakianalytics.datapipelines.iterators.CloseableIterator} view of the {@link java.util.Iterator}