private Iterator<? extends T> getDelegate() {
      Iterator<? extends T> delegate = myDelegate;
      if (delegate == null) {
        myDelegate = delegate = create();
      }
      return delegate;
    }
private Iterator<? extends T> getDelegate()