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-2017 The Helenus Driver Project Authors.