/**
*
*/
package ch.fhzh.info2.processor.impl.common;
import java.util.List;
import ch.fhzh.info2.document.Document;
import ch.fhzh.info2.processor.DocumentProcessor;
import ch.fhzh.info2.processor.DocumentProcessorException;
/**
* Processor which executes other processors
*
* @author seb
*
*/
public class ChainDocumentProcessor implements DocumentProcessor {
/**
* The list of processors.
*/
private List<DocumentProcessor> processors;
/**
* Processes the document through all configured processors.
*
* @see ch.fhzh.info2.processor.DocumentProcessor#processDocument(ch.fhzh.info2.document.Document)
*/
public Document processDocument(Document doc)
throws DocumentProcessorException {
// guard no processors
if (null == this.processors) {
return doc;
}
for (DocumentProcessor delegate : this.processors) {
doc = delegate.processDocument(doc);
}
return doc;
}
/**
* @return Returns the processors.
*/
public List<DocumentProcessor> getProcessors()
{
return processors;
}
/**
* @param processors The processors to set.
*/
public void setProcessors(List<DocumentProcessor> processors)
{
this.processors = processors;
}
}