CountableIteratorIteratorTrait

Trait

Provides counting behavior for iterators and iterator aggregates.

Description

This trait SHALL add a count() implementation that delegates to the inner iterator when possible. When the inner iterator does not implement Countable, the trait MUST determine whether the iterator can be safely cloned before counting its elements through traversal. Implementing classes MUST provide a compatible getInnerIterator() method that returns the traversable object to be counted.

Table of Contents

Methods

count()

Counts the number of elements exposed by the inner iterator.

 : int
Methods

count()

Public

Counts the number of elements exposed by the inner iterator.

public count() : int

Description

If the inner iterator implements Countable, this method SHALL return the value provided by that implementation. Otherwise, it MUST count elements by iterating over the iterator. If the inner iterator is not cloneable, this method SHALL wrap the current object in an IteratorIterator instance and count through that wrapper to avoid performing an invalid clone operation. If the inner iterator is cloneable, this method SHOULD count over a clone so that the original iterator state is preserved as much as possible.

Return values
int

Description

the total number of elements available from the inner iterator