I - the type of element being iterated on inputO - the type of element returned on outputpublic class TransformSpliterator<I,O> extends Object implements Spliterator<O>
TransformSpliterator class provides a useful extension to
the Spliterator interface in cases where a transforming function
needs to be applied to the split-iterator before returning any elements.
The implementation provided here creates a split iterator which wraps around the given split iterator. The original split iterator is iterated as this split iterator is being accessed.
Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>>CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED| Constructor and Description |
|---|
TransformSpliterator(Spliterator<? extends I> i)
Constructs a transforming split iterator using an input split iterator.
|
TransformSpliterator(Spliterator<? extends I> i,
Transformer<? super I,? extends O> transformer)
Constructs a transforming split iterator using an input split iterator and the
specified transformer.
|
TransformSpliterator(Spliterator<? extends I> i,
Transformer<? super I,? extends O> transformer,
Transformer<? super O,? extends I> reverseTransformer)
Constructs a transforming split iterator using an input split iterator and the
specified transformer.
|
| Modifier and Type | Method and Description |
|---|---|
int |
characteristics() |
long |
estimateSize() |
void |
forEachRemaining(java.util.function.Consumer<? super O> action) |
Comparator<? super O> |
getComparator() |
long |
getExactSizeIfKnown() |
Transformer<? super O,? extends I> |
getReverseTransformer()
Gets the optional reverse transformer this split iterator needs if the source
is
SORTED with a non-natural order. |
Spliterator<? extends I> |
getSpliterator()
Gets the split iterator this split iterator is using.
|
Transformer<? super I,? extends O> |
getTransformer()
Gets the transformer this split iterator is using.
|
boolean |
hasCharacteristics(int characteristics) |
void |
setReverseTransformer(Transformer<? super O,? extends I> reverseTransformer)
Sets the reverse transformer this split iterator needs if the source
is
SORTED with a non-natural order. |
void |
setSpliterator(Spliterator<? extends I> iterator)
Sets the split iterator for this split iterator to use.
|
void |
setTransformer(Transformer<? super I,? extends O> transformer)
Sets the transformer this split iterator will use.
|
protected O |
transform(I source)
Transforms the given object using the transformer.
|
boolean |
tryAdvance(java.util.function.Consumer<? super O> action) |
Spliterator<O> |
trySplit() |
public TransformSpliterator(Spliterator<? extends I> i)
i - a split iterator to be transformedpublic TransformSpliterator(Spliterator<? extends I> i, Transformer<? super I,? extends O> transformer)
i - a split iterator to be transformedtransformer - a transformer objectpublic TransformSpliterator(Spliterator<? extends I> i, Transformer<? super I,? extends O> transformer, Transformer<? super O,? extends I> reverseTransformer)
i - a list iterator to be transformedtransformer - a transformer objectreverseTransformer - a reverse transformer objectprotected O transform(I source)
source - the object to transformpublic boolean tryAdvance(java.util.function.Consumer<? super O> action)
tryAdvance in interface Spliterator<O>Spliterator.tryAdvance(java.util.function.Consumer)public void forEachRemaining(java.util.function.Consumer<? super O> action)
forEachRemaining in interface Spliterator<O>Spliterator.forEachRemaining(java.util.function.Consumer)public Spliterator<O> trySplit()
trySplit in interface Spliterator<O>Spliterator.trySplit()public long estimateSize()
estimateSize in interface Spliterator<O>Spliterator.estimateSize()public long getExactSizeIfKnown()
getExactSizeIfKnown in interface Spliterator<O>Spliterator.getExactSizeIfKnown()public int characteristics()
characteristics in interface Spliterator<O>Spliterator.characteristics()public boolean hasCharacteristics(int characteristics)
hasCharacteristics in interface Spliterator<O>Spliterator.hasCharacteristics(int)public Comparator<? super O> getComparator()
Note: If the underlying split iterator is SORTED in a
non-natural order, this method will be unable to return a transformed
comparator as it would require
getComparator in interface Spliterator<O>Spliterator.getComparator()public Spliterator<? extends I> getSpliterator()
public void setSpliterator(Spliterator<? extends I> iterator)
iterator - the split iterator to usepublic Transformer<? super I,? extends O> getTransformer()
public void setTransformer(Transformer<? super I,? extends O> transformer)
transformer - the transformer to usepublic Transformer<? super O,? extends I> getReverseTransformer()
SORTED with a non-natural order.
public void setReverseTransformer(Transformer<? super O,? extends I> reverseTransformer)
SORTED with a non-natural order.reverseTransformer - the reverse transformer to use in comparisonsCopyright (C) 2015-2015 The Helenus Driver Project Authors.