Package org.codehaus.commons.compiler.util.iterator

# Class TraversingIterator

java.lang.Object
org.codehaus.commons.compiler.util.iterator.TraversingIterator

All Implemented Interfaces:
  `Iterator<Object>`

public class TraversingIterator extends Object implements Iterator<Object>
An `Iterator` that iterates over a delegate, and while it encounters an array, a `Collection`, an `Enumeration` or a `Iterator` element, it iterates over it recursively.

Be aware that `hasNext()` must read ahead one element.

## Constructor Summary

Constructors
Constructor
Description
`TraversingIterator(Iterator<?> delegate)`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`hasNext()`
`Object`
`next()`
`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`

## Constructor Details

### TraversingIterator

public TraversingIterator(Iterator<?> delegate)

## Method Details

### hasNext

public boolean hasNext()

Specified by:
  `hasNext` in interface `Iterator<Object>`

### next

public Object next()

Specified by:
  `next` in interface `Iterator<Object>`

### remove

public void remove()

Specified by:
  `remove` in interface `Iterator<Object>`
Throws:
  `UnsupportedOperationException` - The `Iterator` currently being traversed doesn't support element removal
See Also:
  - `Iterator.remove()`