KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > xquark > util > DecoratorFilter


1 /*
2  * This file belongs to the XQuark distribution.
3  * Copyright (C) 2003 XQuark Group.
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307.
18  * You can also get it at http://www.gnu.org/licenses/lgpl.html
19  *
20  * For more information on this software, see http://www.xquark.org.
21  */

22
23 package org.xquark.util;
24
25 import org.xml.sax.*;
26 import org.xml.sax.ext.LexicalHandler JavaDoc;
27
28 /**
29  * This class allows once you have programmed a SAX-like filter HandlerDecorator
30  * (an XQuark feature) to easily produce a SAX XMLFilter sharing the same logic.
31  */

32 public class DecoratorFilter extends DefaultXMLFilter {
33     private static final String JavaDoc RCSRevision = "$Revision: 1.4 $";
34     private static final String JavaDoc RCSName = "$Name: $";
35
36   protected HandlerDecorator decorator;
37   
38   public DecoratorFilter(XMLReader reader, HandlerDecorator decorator) {
39     super(reader);
40     setHandlerDecorator(decorator);
41   }
42
43   public DecoratorFilter(HandlerDecorator decorator) {
44     setHandlerDecorator(decorator);
45   }
46   
47   private void setHandlerDecorator(HandlerDecorator decorator) {
48     this.decorator = decorator;
49     super.setContentHandler(decorator);
50   }
51   
52   public void setContentHandler(ContentHandler handler) {
53     decorator.setContentHandler(handler);
54   }
55
56   public ContentHandler getContentHandler() {
57     return decorator.getContentHandler();
58   }
59
60   public void setLexicalHandler(LexicalHandler JavaDoc handler) {
61     decorator.setLexicalHandler(handler);
62   }
63
64   public LexicalHandler JavaDoc getLexicalHandler() {
65     return decorator.getLexicalHandler();
66   }
67   
68   public void setErrorHandler(ErrorHandler handler) {
69     decorator.setErrorHandler(handler);
70   }
71
72   public ErrorHandler getErrorHandler() {
73     return decorator.getPluggedErrorHandler();
74   }
75   
76   public void parse(InputSource source) throws SAXException, java.io.IOException JavaDoc {
77     setupFilter();
78     super.parse(source);
79   }
80
81   private void setupFilter() {
82     super.setContentHandler(decorator);
83     super.setLexicalHandler(decorator);
84     super.setErrorHandler(decorator);
85   }
86
87 }
88
Popular Tags