KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > embedding > tools > AbstractObjectReader


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 /* $Id: AbstractObjectReader.java 426576 2006-07-28 15:44:37Z jeremias $ */
19  
20 package embedding.tools;
21
22 //Java
23
import java.io.IOException JavaDoc;
24 import java.util.Map JavaDoc;
25
26 //SAX
27
import org.xml.sax.SAXException JavaDoc;
28 import org.xml.sax.InputSource JavaDoc;
29 import org.xml.sax.XMLReader JavaDoc;
30 import org.xml.sax.ContentHandler JavaDoc;
31 import org.xml.sax.DTDHandler JavaDoc;
32 import org.xml.sax.ErrorHandler JavaDoc;
33 import org.xml.sax.EntityResolver JavaDoc;
34
35 /**
36  * This class can be used as base class for XMLReaders that generate SAX
37  * events from Java objects.
38  */

39
40 public abstract class AbstractObjectReader implements XMLReader JavaDoc {
41
42     private static final String JavaDoc NAMESPACES =
43         "http://xml.org/sax/features/namespaces";
44     private static final String JavaDoc NS_PREFIXES =
45         "http://xml.org/sax/features/namespace-prefixes";
46         
47     private Map JavaDoc features = new java.util.HashMap JavaDoc();
48     private ContentHandler JavaDoc orgHandler;
49     
50     /** Proxy for easy SAX event generation */
51     protected EasyGenerationContentHandlerProxy handler;
52     /** Error handler */
53     protected ErrorHandler JavaDoc errorHandler;
54
55
56     /**
57      * Constructor for the AbstractObjectReader object
58      */

59     public AbstractObjectReader() {
60         setFeature(NAMESPACES, false);
61         setFeature(NS_PREFIXES, false);
62     }
63     
64     /* ============ XMLReader interface ============ */
65
66     /**
67      * @see org.xml.sax.XMLReader#getContentHandler()
68      */

69     public ContentHandler JavaDoc getContentHandler() {
70         return this.orgHandler;
71     }
72
73     /**
74      * @see org.xml.sax.XMLReader#setContentHandler(ContentHandler)
75      */

76     public void setContentHandler(ContentHandler JavaDoc handler) {
77         this.orgHandler = handler;
78         this.handler = new EasyGenerationContentHandlerProxy(handler);
79     }
80
81     /**
82      * @see org.xml.sax.XMLReader#getErrorHandler()
83      */

84     public ErrorHandler JavaDoc getErrorHandler() {
85         return this.errorHandler;
86     }
87
88     /**
89      * @see org.xml.sax.XMLReader#setErrorHandler(ErrorHandler)
90      */

91     public void setErrorHandler(ErrorHandler JavaDoc handler) {
92         this.errorHandler = handler;
93     }
94
95     /**
96      * @see org.xml.sax.XMLReader#getDTDHandler()
97      */

98     public DTDHandler JavaDoc getDTDHandler() {
99         return null;
100     }
101
102     /**
103      * @see org.xml.sax.XMLReader#setDTDHandler(DTDHandler)
104      */

105     public void setDTDHandler(DTDHandler JavaDoc handler) {
106     }
107
108     /**
109      * @see org.xml.sax.XMLReader#getEntityResolver()
110      */

111     public EntityResolver JavaDoc getEntityResolver() {
112         return null;
113     }
114
115     /**
116      * @see org.xml.sax.XMLReader#setEntityResolver(EntityResolver)
117      */

118     public void setEntityResolver(EntityResolver JavaDoc resolver) {
119     }
120
121     /**
122      * @see org.xml.sax.XMLReader#getProperty(String)
123      */

124     public Object JavaDoc getProperty(java.lang.String JavaDoc name) {
125         return null;
126     }
127
128     /**
129      * @see org.xml.sax.XMLReader#setProperty(String, Object)
130      */

131     public void setProperty(java.lang.String JavaDoc name, java.lang.Object JavaDoc value) {
132     }
133
134     /**
135      * @see org.xml.sax.XMLReader#getFeature(String)
136      */

137     public boolean getFeature(java.lang.String JavaDoc name) {
138         return ((Boolean JavaDoc) features.get(name)).booleanValue();
139     }
140
141     /**
142      * Returns true if the NAMESPACES feature is enabled.
143      * @return boolean true if enabled
144      */

145     protected boolean isNamespaces() {
146         return getFeature(NAMESPACES);
147     }
148
149     /**
150      * Returns true if the MS_PREFIXES feature is enabled.
151      * @return boolean true if enabled
152      */

153     protected boolean isNamespacePrefixes() {
154         return getFeature(NS_PREFIXES);
155     }
156
157     /**
158      * @see org.xml.sax.XMLReader#setFeature(String, boolean)
159      */

160     public void setFeature(java.lang.String JavaDoc name, boolean value) {
161         this.features.put(name, new Boolean JavaDoc(value));
162     }
163
164     /**
165      * @see org.xml.sax.XMLReader#parse(String)
166      */

167     public void parse(String JavaDoc systemId) throws IOException JavaDoc, SAXException JavaDoc {
168         throw new SAXException JavaDoc(
169             this.getClass().getName()
170                 + " cannot be used with system identifiers (URIs)");
171     }
172
173     /**
174      * @see org.xml.sax.XMLReader#parse(InputSource)
175      */

176     public abstract void parse(InputSource JavaDoc input)
177         throws IOException JavaDoc, SAXException JavaDoc;
178
179 }
180
Popular Tags