package pl.touk.sputnik.engine;
import org.jetbrains.annotations.NotNull;
import pl.touk.sputnik.configuration.Configuration;
import pl.touk.sputnik.processor.ReviewProcessorFactory;
import pl.touk.sputnik.review.ReviewProcessor;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ServiceLoader;
public class ProcessorBuilder {
@NotNull
public static List<ReviewProcessor> buildProcessors(Configuration configuration) {
List<ReviewProcessor> processors = new ArrayList<>();
ServiceLoader<ReviewProcessorFactory> loader = ServiceLoader.load(ReviewProcessorFactory.class);
Iterator<ReviewProcessorFactory> iterator = loader.iterator();
while (iterator.hasNext()) {
ReviewProcessorFactory factory = iterator.next();
if (factory.isEnabled(configuration)) {
processors.add(factory.create(configuration));
}
}
return processors;
}
}