package org.needle4j.processor;
import static org.needle4j.common.Preconditions.checkArgument;
import java.util.ArrayList;
import java.util.List;
import org.needle4j.NeedleContext;
/**
* {@link NeedleProcessor} that calls chain of processors.
*/
public class ChainedNeedleProcessor implements NeedleProcessor {
private final List<NeedleProcessor> processors = new ArrayList<NeedleProcessor>();
public ChainedNeedleProcessor(final NeedleProcessor... processors) {
addProcessor(processors);
}
public void addProcessor(final NeedleProcessor... processors) {
if (processors == null) {
return;
}
for (NeedleProcessor processor : processors) {
this.processors.add(processor);
}
}
@Override
public void process(final NeedleContext context) {
checkArgument(context != null, "context must not be null");
for (NeedleProcessor processor : this.processors) {
processor.process(context);
}
}
}