PipelineHelper
PipelineHelper
文档说明
- 用于执行流管道的辅助类
-
用于在一个地方捕获所有关于流管道的信息(输出种类、中间操作、流标识、并行 等)
-
PipelineHelper 描述了一个流管道的初始分块,包括它的源、中间操作
-
和可能额外附加的关于终止(或有状态)操作的信息,该操作跟进上一个由当前 PipelineHelper 描述的中间操作
-
PipelineHelper 会被传递给 evaluateParallel、evaluateSequential,与 opEvaluateParallel 等方法
-
使其能够使用 PipelineHelper 去访问关于管道的各种信息
方法
- wrapAndCopyInto(S sink, Spliterator<p_in> spliterator)
-
将当前 PipelineHelper 描述的管道阶段应用到所提供的 Spliterator,并将结果发送给提供的 Sink
- 调用 copyInto(wrapSink(Objects.requireNonNull(sink)), spliterator) 方法,并返回 sink
-
-
wrapSink(Sink<p_out> sink);
-
接收一个 Sink,此 Sink 本身会接收 PipelineHelper 输出类型的元素
-
然后使用一个接收输入类型的元素并且实现了所有 PipelineHelper 中定义的中间操作的 Sink 来对其进行包装
-
然后将结果传递给所提供的 Sink
-
-
copyInto(Sink<p_in> wrappedSink, Spliterator<p_in> spliterator);
-
将从 Spliterator 中获取到的元素推到提供的 Sink 中
-
若流管道知道有“短路”的阶段,就会进行短路判断
-
@implSpec
-
当前方法符合 Sink 的协议:
-
先调用 begin 方法
-
然后 accept 方法
-
当所有元素推送完毕后,调用 end 方法
-
-