package com.brucezee.jspider.pipeline;
import com.brucezee.jspider.Result;
import com.brucezee.jspider.Request;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 混合结果集处理器
* Created by brucezee on 2017/1/16.
*/
public class CompositePipeline implements Pipeline {
private List<SubPipeline> pipelines;
public CompositePipeline(List<SubPipeline> pipelines) {
this.pipelines = pipelines;
}
public CompositePipeline(SubPipeline... pipelines) {
this(Arrays.asList(pipelines));
}
public CompositePipeline() {
this(new ArrayList<SubPipeline>());
}
@Override
public void persist(Request request, Result result) {
for (SubPipeline pipeline : pipelines) {
if (pipeline.isMatch(request)) {
pipeline.persist(request, result);
}
}
}
public CompositePipeline addSubPipeline(SubPipeline pipeline) {
this.pipelines.add(pipeline);
return this;
}
}