@Override public <S> Void evaluateSequential(PipelineHelper<T> helper, Spliterator<S> spliterator) { return helper.wrapAndCopyInto(this, spliterator).get(); }
@Override public <S> Void evaluateSequential(PipelineHelper<T> helper, Spliterator<S> spliterator) { return helper.wrapAndCopyInto(this, spliterator).get(); }
@Override protected S doLeaf() { return helper.wrapAndCopyInto(op.makeSink(), spliterator); }
@Override protected S doLeaf() { return helper.wrapAndCopyInto(op.makeSink(), spliterator); }
@Override public <S> O evaluateSequential(PipelineHelper<T> helper, Spliterator<S> spliterator) { O result = helper.wrapAndCopyInto(sinkSupplier.get(), spliterator).get(); return result != null ? result : emptyValue; }
@Override public <P_IN> R evaluateSequential(PipelineHelper<T> helper, Spliterator<P_IN> spliterator) { return helper.wrapAndCopyInto(makeSink(), spliterator).get(); }
@Override public <S> Boolean evaluateSequential(PipelineHelper<T> helper, Spliterator<S> spliterator) { return helper.wrapAndCopyInto(sinkSupplier.get(), spliterator).getAndClearState(); }
@Override public <P_IN> R evaluateSequential(PipelineHelper<T> helper, Spliterator<P_IN> spliterator) { return helper.wrapAndCopyInto(makeSink(), spliterator).get(); }
@Override public <S> Boolean evaluateSequential(PipelineHelper<T> helper, Spliterator<S> spliterator) { return helper.wrapAndCopyInto(sinkSupplier.get(), spliterator).getAndClearState(); }
@Override public <S> O evaluateSequential(PipelineHelper<T> helper, Spliterator<S> spliterator) { O result = helper.wrapAndCopyInto(sinkSupplier.get(), spliterator).get(); return result != null ? result : emptyValue; }
@Override protected Boolean doLeaf() { boolean b = helper.wrapAndCopyInto(op.sinkSupplier.get(), spliterator).getAndClearState(); if (b == op.matchKind.shortCircuitResult) shortCircuit(b); return null; }
@Override protected Boolean doLeaf() { boolean b = helper.wrapAndCopyInto(op.sinkSupplier.get(), spliterator).getAndClearState(); if (b == op.matchKind.shortCircuitResult) shortCircuit(b); return null; }
@Override @SuppressWarnings("unchecked") protected T_NODE doLeaf() { T_BUILDER builder = builderFactory.apply(helper.exactOutputSizeIfKnown(spliterator)); return (T_NODE) helper.wrapAndCopyInto(builder, spliterator).build(); }
@Override @SuppressWarnings("unchecked") protected T_NODE doLeaf() { T_BUILDER builder = builderFactory.apply(helper.exactOutputSizeIfKnown(spliterator)); return (T_NODE) helper.wrapAndCopyInto(builder, spliterator).build(); }
@Override public void forEachRemaining(Consumer<? super P_OUT> consumer) { if (buffer == null && !finished) { Objects.requireNonNull(consumer); init(); ph.wrapAndCopyInto((Consumer<P_OUT>) consumer::accept, spliterator); finished = true; } else { do { } while (tryAdvance(consumer)); } } }
@Override public void forEachRemaining(Consumer<? super P_OUT> consumer) { if (buffer == null && !finished) { Objects.requireNonNull(consumer); init(); ph.wrapAndCopyInto((Consumer<P_OUT>) consumer::accept, spliterator); finished = true; } else { do { } while (tryAdvance(consumer)); } } }
@Override protected O doLeaf() { O result = helper.wrapAndCopyInto(op.sinkSupplier.get(), spliterator).get(); if (!mustFindFirst) { if (result != null) shortCircuit(result); return null; } else { if (result != null) { foundResult(result); return result; } else return null; } }
@Override protected O doLeaf() { O result = helper.wrapAndCopyInto(op.sinkSupplier.get(), spliterator).get(); if (!mustFindFirst) { if (result != null) shortCircuit(result); return null; } else { if (result != null) { foundResult(result); return result; } else return null; } }
@Override public void compute() { SizedCollectorTask<P_IN, P_OUT, T_SINK, K> task = this; Spliterator<P_IN> rightSplit = spliterator, leftSplit; while (rightSplit.estimateSize() > task.targetSize && (leftSplit = rightSplit.trySplit()) != null) { task.setPendingCount(1); long leftSplitSize = leftSplit.estimateSize(); task.makeChild(leftSplit, task.offset, leftSplitSize).fork(); task = task.makeChild(rightSplit, task.offset + leftSplitSize, task.length - leftSplitSize); } @SuppressWarnings("unchecked") T_SINK sink = (T_SINK) task; task.helper.wrapAndCopyInto(sink, rightSplit); task.propagateCompletion(); }
@Override public void compute() { SizedCollectorTask<P_IN, P_OUT, T_SINK, K> task = this; Spliterator<P_IN> rightSplit = spliterator, leftSplit; while (rightSplit.estimateSize() > task.targetSize && (leftSplit = rightSplit.trySplit()) != null) { task.setPendingCount(1); long leftSplitSize = leftSplit.estimateSize(); task.makeChild(leftSplit, task.offset, leftSplitSize).fork(); task = task.makeChild(rightSplit, task.offset + leftSplitSize, task.length - leftSplitSize); } @SuppressWarnings("unchecked") T_SINK sink = (T_SINK) task; task.helper.wrapAndCopyInto(sink, rightSplit); task.propagateCompletion(); }