# Class AbstractUntypedIteratorDecorator<I,O>

java.lang.Object
org.apache.commons.collections4.iterators.AbstractUntypedIteratorDecorator<I,O>

Type Parameters:
  `I` - the type of the iterator being decorated.
  `O` - the type of elements returned by this iterator.

All Implemented Interfaces:
  `Iterator<O>`

Direct Known Subclasses:
  `AbstractIteratorDecorator`

public abstract class AbstractUntypedIteratorDecorator<I,O> extends Object implements Iterator<O>
Provides basic behavior for decorating an iterator with extra functionality without committing the generic type of the Iterator implementation.

All methods are forwarded to the decorated iterator.

Since:
  4.0

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `AbstractUntypedIteratorDecorator(Iterator<I> iterator)`
  Create a new AbstractUntypedIteratorDecorator.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected Iterator<I>`
  `getIterator()`
  Gets the iterator being decorated.
  `boolean`
  `hasNext()`
  `void`
  `remove()`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface java.util.Iterator

  `forEachRemaining, next`

- ## Constructor Details

  - ### AbstractUntypedIteratorDecorator

    protected AbstractUntypedIteratorDecorator(Iterator<I> iterator)
    Create a new AbstractUntypedIteratorDecorator.
    Parameters:
      `iterator` - the iterator to decorate
    Throws:
      `NullPointerException` - if the iterator is null

- ## Method Details

  - ### getIterator

    protected Iterator<I> getIterator()
    Gets the iterator being decorated.
    Returns:
      the decorated iterator

  - ### hasNext

    public boolean hasNext()
    Specified by:
      `hasNext` in interface `Iterator<I>`

  - ### remove

    public void remove()
    Specified by:
      `remove` in interface `Iterator<I>`