01: package net.matuschek.spider.docfilter;
02:
03: /*********************************************
04: Copyright (c) 2001 by Daniel Matuschek
05: *********************************************/
06:
07: import java.util.Vector;
08:
09: import net.matuschek.http.HttpDoc;
10:
11: /**
12: * This object defines a chain of DocumentFilters
13: *
14: * @author Daniel Matuschek
15: * @version $Revision: 1.1 $
16: */
17: public class FilterChain {
18:
19: /** All filters */
20: Vector<DocumentFilter> filters = new Vector<DocumentFilter>();
21:
22: /**
23: * Creates a new FilterChain without any installed filters
24: */
25: public FilterChain() {
26: }
27:
28: /**
29: * Adds a new filter to the filter chain
30: */
31: public void add(DocumentFilter filter) {
32: filters.add(filter);
33: }
34:
35: /**
36: * Processes a HttpDoc by the defined filter chain
37: *
38: * @param doc the input document to process
39: * @return a HttpDoc that is the result of filtering
40: */
41: public HttpDoc process(HttpDoc doc) throws FilterException {
42: for (int i = 0; i < filters.size(); i++) {
43: DocumentFilter filter = filters.elementAt(i);
44: doc = filter.process(doc);
45: }
46: return doc;
47: }
48: }
|