Package net.shibboleth.shared.collection

# Class ClassIndexedSet.ClassIndexedSetIterator

java.lang.Object
net.shibboleth.shared.collection.ClassIndexedSet.ClassIndexedSetIterator

All Implemented Interfaces:
  `Iterator<T>`

Enclosing class:
  ClassIndexedSet<T>

protected class ClassIndexedSet.ClassIndexedSetIterator extends Object implements Iterator<T>
Iterator for set implementation `ClassIndexedSet`.

## Field Summary

Fields
Modifier and Type
Field
Description
`private T`
`current`
The element most recently returned by next(), and the target for any subsequent remove() operation.
`private final Iterator<T>`
`iterator`
The iterator for the owner's underlying storage.
`private boolean`
`nextCalled`
Flag which tracks whether next() has been called at least once.
`private boolean`
`removeStateValid`
Flag which tracks whether remove can currently be called.
`private final ClassIndexedSet<T>`
`set`
The set instance over which this instance is an iterator.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`ClassIndexedSetIterator(ClassIndexedSet<T> parentSet, Iterator<T> parentIterator)`
Constructor.

## Method Summary

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

## Field Details

### set

@Nonnull private final ClassIndexedSet<T> set
The set instance over which this instance is an iterator.

### iterator

@Nonnull private final Iterator<T> iterator
The iterator for the owner's underlying storage.

### nextCalled

private boolean nextCalled
Flag which tracks whether next() has been called at least once.

### removeStateValid

private boolean removeStateValid
Flag which tracks whether remove can currently be called.

### current

@Nullable private T current
The element most recently returned by next(), and the target for any subsequent remove() operation.

## Constructor Details

### ClassIndexedSetIterator

protected ClassIndexedSetIterator(@Nonnull ClassIndexedSet<T> parentSet, @Nonnull Iterator<T> parentIterator)
Constructor.

Parameters:
  `parentSet` - the `ClassIndexedSet` over which this instance is an iterator
  `parentIterator` - the iterator for the parent's underlying storage

## Method Details

### hasNext

public boolean hasNext()

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

### next

public T next()

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

### remove

public void remove()

Specified by:
  `remove` in interface `Iterator<T>`