KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > util > xml > catalog > readers > SAXParserHandler


1 // SAXParserHandler.java - An entity-resolving DefaultHandler
2

3 /* ====================================================================
4  * The Apache Software License, Version 1.1
5  *
6  * Copyright (c) 2001-2003 The Apache Software Foundation. All rights
7  * reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  *
13  * 1. Redistributions of source code must retain the above copyright
14  * notice, this list of conditions and the following disclaimer.
15  *
16  * 2. Redistributions in binary form must reproduce the above copyright
17  * notice, this list of conditions and the following disclaimer in
18  * the documentation and/or other materials provided with the
19  * distribution.
20  *
21  * 3. The end-user documentation included with the redistribution,
22  * if any, must include the following acknowledgment:
23  * "This product includes software developed by the
24  * Apache Software Foundation (http://www.apache.org/)."
25  * Alternately, this acknowledgment may appear in the software itself,
26  * if and wherever such third-party acknowledgments normally appear.
27  *
28  * 4. The names "Apache" and "Apache Software Foundation" must
29  * not be used to endorse or promote products derived from this
30  * software without prior written permission. For written
31  * permission, please contact apache@apache.org.
32  *
33  * 5. Products derived from this software may not be called "Apache",
34  * nor may "Apache" appear in their name, without prior written
35  * permission of the Apache Software Foundation.
36  *
37  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
41  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48  * SUCH DAMAGE.
49  * ====================================================================
50  *
51  * This software consists of voluntary contributions made by many
52  * individuals on behalf of the Apache Software Foundation. For more
53  * information on the Apache Software Foundation, please see
54  * <http://www.apache.org/>.
55  */

56
57 package org.jboss.util.xml.catalog.readers;
58
59 import java.io.IOException JavaDoc;
60
61 import org.xml.sax.*;
62 import org.xml.sax.helpers.*;
63
64 /**
65  * An entity-resolving DefaultHandler.
66  *
67  * <p>This class provides a SAXParser DefaultHandler that performs
68  * entity resolution.
69  * </p>
70  *
71  * @author Norman Walsh
72  * <a HREF="mailto:Norman.Walsh@Sun.COM">Norman.Walsh@Sun.COM</a>
73  * @version 1.0
74  */

75 public class SAXParserHandler extends DefaultHandler {
76   private EntityResolver er = null;
77   private ContentHandler ch = null;
78
79   public SAXParserHandler() {
80     super();
81   }
82
83   public void setEntityResolver(EntityResolver er) {
84     this.er = er;
85   }
86
87   public void setContentHandler(ContentHandler ch) {
88     this.ch = ch;
89   }
90
91   // Entity Resolver
92
public InputSource resolveEntity(String JavaDoc publicId, String JavaDoc systemId)
93     throws SAXException {
94
95     if (er != null) {
96       try {
97     return er.resolveEntity(publicId, systemId);
98       } catch (IOException JavaDoc e) {
99       System.out.println("resolveEntity threw IOException!");
100       return null;
101       }
102     } else {
103       return null;
104     }
105   }
106
107   // Content Handler
108
public void characters(char[] ch, int start, int length)
109     throws SAXException {
110     if (this.ch != null) {
111       this.ch.characters(ch, start, length);
112     }
113   }
114
115   public void endDocument()
116     throws SAXException {
117     if (ch != null) {
118       ch.endDocument();
119     }
120   }
121
122   public void endElement(String JavaDoc namespaceURI, String JavaDoc localName, String JavaDoc qName)
123     throws SAXException {
124     if (ch != null) {
125       ch.endElement(namespaceURI, localName, qName);
126     }
127   }
128
129   public void endPrefixMapping(String JavaDoc prefix)
130     throws SAXException {
131     if (ch != null) {
132       ch.endPrefixMapping(prefix);
133     }
134   }
135
136   public void ignorableWhitespace(char[] ch, int start, int length)
137     throws SAXException {
138     if (this.ch != null) {
139       this.ch.ignorableWhitespace(ch, start, length);
140     }
141   }
142
143   public void processingInstruction(String JavaDoc target, String JavaDoc data)
144     throws SAXException {
145     if (ch != null) {
146       ch.processingInstruction(target, data);
147     }
148   }
149
150   public void setDocumentLocator(Locator locator) {
151     if (ch != null) {
152       ch.setDocumentLocator(locator);
153     }
154   }
155
156   public void skippedEntity(String JavaDoc name)
157     throws SAXException {
158     if (ch != null) {
159       ch.skippedEntity(name);
160     }
161   }
162
163   public void startDocument()
164     throws SAXException {
165     if (ch != null) {
166       ch.startDocument();
167     }
168   }
169
170   public void startElement(String JavaDoc namespaceURI, String JavaDoc localName,
171                String JavaDoc qName, Attributes atts)
172     throws SAXException {
173     if (ch != null) {
174       ch.startElement(namespaceURI, localName, qName, atts);
175     }
176   }
177
178   public void startPrefixMapping(String JavaDoc prefix, String JavaDoc uri)
179     throws SAXException {
180     if (ch != null) {
181       ch.startPrefixMapping(prefix, uri);
182     }
183   }
184 }
185
Popular Tags