001 /* StreamReaderDelegate.java --
002 Copyright (C) 2005,2006,2009 Free Software Foundation, Inc.
003
004 This file is part of GNU Classpath.
005
006 GNU Classpath is free software; you can redistribute it and/or modify
007 it under the terms of the GNU General Public License as published by
008 the Free Software Foundation; either version 2, or (at your option)
009 any later version.
010
011 GNU Classpath is distributed in the hope that it will be useful, but
012 WITHOUT ANY WARRANTY; without even the implied warranty of
013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014 General Public License for more details.
015
016 You should have received a copy of the GNU General Public License
017 along with GNU Classpath; see the file COPYING. If not, write to the
018 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
019 02110-1301 USA.
020
021 Linking this library statically or dynamically with other modules is
022 making a combined work based on this library. Thus, the terms and
023 conditions of the GNU General Public License cover the whole
024 combination.
025
026 As a special exception, the copyright holders of this library give you
027 permission to link this library with independent modules to produce an
028 executable, regardless of the license terms of these independent
029 modules, and to copy and distribute the resulting executable under
030 terms of your choice, provided that you also meet, for each linked
031 independent module, the terms and conditions of the license of that
032 module. An independent module is a module which is not derived from
033 or based on this library. If you modify this library, you may extend
034 this exception to your version of the library, but you are not
035 obligated to do so. If you do not wish to do so, delete this
036 exception statement from your version. */
037
038 package javax.xml.stream.util;
039
040 import javax.xml.namespace.NamespaceContext;
041 import javax.xml.namespace.QName;
042 import javax.xml.stream.Location;
043 import javax.xml.stream.XMLStreamConstants;
044 import javax.xml.stream.XMLStreamException;
045 import javax.xml.stream.XMLStreamReader;
046
047 /**
048 * Base class for XML stream reader filters.
049 */
050 public class StreamReaderDelegate
051 implements XMLStreamReader, XMLStreamConstants
052 {
053
054 private XMLStreamReader parent;
055
056 /**
057 * Constructs an empty filter with no parent set.
058 */
059 public StreamReaderDelegate()
060 {
061 }
062
063 /**
064 * Constructs an empty filter with the specfied parent.
065 */
066 public StreamReaderDelegate(XMLStreamReader reader)
067 {
068 parent = reader;
069 }
070
071 /**
072 * Sets the parent.
073 */
074 public void setParent(XMLStreamReader reader)
075 {
076 parent = reader;
077 }
078
079 /**
080 * Returns the parent.
081 */
082 public XMLStreamReader getParent()
083 {
084 return parent;
085 }
086
087 public int next()
088 throws XMLStreamException
089 {
090 if (parent != null)
091 return parent.next();
092 throw new XMLStreamException();
093 }
094
095 public int nextTag()
096 throws XMLStreamException
097 {
098 if (parent != null)
099 return parent.nextTag();
100 throw new XMLStreamException();
101 }
102
103 public String getElementText()
104 throws XMLStreamException
105 {
106 if (parent != null)
107 return parent.getElementText();
108 throw new XMLStreamException();
109 }
110
111 public void require(int type, String namespaceURI, String localName)
112 throws XMLStreamException
113 {
114 if (parent != null)
115 parent.require(type, namespaceURI, localName);
116 }
117
118 public boolean hasNext()
119 throws XMLStreamException
120 {
121 if (parent != null)
122 return parent.hasNext();
123 return false;
124 }
125
126 public void close()
127 throws XMLStreamException
128 {
129 if (parent != null)
130 parent.close();
131 }
132
133 public String getNamespaceURI(String prefix)
134 {
135 if (parent != null)
136 return parent.getNamespaceURI(prefix);
137 return null;
138 }
139
140 public NamespaceContext getNamespaceContext()
141 {
142 if (parent != null)
143 return parent.getNamespaceContext();
144 return null;
145 }
146
147 public boolean isStartElement()
148 {
149 if (parent != null)
150 return parent.isStartElement();
151 return false;
152 }
153
154 public boolean isEndElement()
155 {
156 if (parent != null)
157 return parent.isEndElement();
158 return false;
159 }
160
161 public boolean isCharacters()
162 {
163 if (parent != null)
164 return parent.isCharacters();
165 return false;
166 }
167
168 public boolean isWhiteSpace()
169 {
170 if (parent != null)
171 return parent.isWhiteSpace();
172 return false;
173 }
174
175 public String getAttributeValue(String namespaceUri, String localName)
176 {
177 if (parent != null)
178 return parent.getAttributeValue(namespaceUri, localName);
179 return null;
180 }
181
182 public int getAttributeCount()
183 {
184 if (parent != null)
185 return parent.getAttributeCount();
186 return 0;
187 }
188
189 public QName getAttributeName(int index)
190 {
191 if (parent != null)
192 return parent.getAttributeName(index);
193 return null;
194 }
195
196 public String getAttributePrefix(int index)
197 {
198 if (parent != null)
199 return parent.getAttributePrefix(index);
200 return null;
201 }
202
203 public String getAttributeNamespace(int index)
204 {
205 if (parent != null)
206 return parent.getAttributeNamespace(index);
207 return null;
208 }
209
210 public String getAttributeLocalName(int index)
211 {
212 if (parent != null)
213 return parent.getAttributeLocalName(index);
214 return null;
215 }
216
217 public String getAttributeType(int index)
218 {
219 if (parent != null)
220 return parent.getAttributeType(index);
221 return null;
222 }
223
224 public String getAttributeValue(int index)
225 {
226 if (parent != null)
227 return parent.getAttributeValue(index);
228 return null;
229 }
230
231 public boolean isAttributeSpecified(int index)
232 {
233 if (parent != null)
234 return parent.isAttributeSpecified(index);
235 return false;
236 }
237
238 public int getNamespaceCount()
239 {
240 if (parent != null)
241 return parent.getNamespaceCount();
242 return 0;
243 }
244
245 public String getNamespacePrefix(int index)
246 {
247 if (parent != null)
248 return parent.getNamespacePrefix(index);
249 return null;
250 }
251
252 public String getNamespaceURI(int index)
253 {
254 if (parent != null)
255 return parent.getNamespaceURI(index);
256 return null;
257 }
258
259 public int getEventType()
260 {
261 if (parent != null)
262 return parent.getEventType();
263 return 0;
264 }
265
266 public String getText()
267 {
268 if (parent != null)
269 return parent.getText();
270 return null;
271 }
272
273 public int getTextCharacters(int sourceStart, char[] target,
274 int targetStart, int length)
275 throws XMLStreamException
276 {
277 if (parent != null)
278 return parent.getTextCharacters(sourceStart, target, targetStart, length);
279 return 0;
280 }
281
282 public char[] getTextCharacters()
283 {
284 if (parent != null)
285 return parent.getTextCharacters();
286 return null;
287 }
288
289 public int getTextStart()
290 {
291 if (parent != null)
292 return parent.getTextStart();
293 return 0;
294 }
295
296 public int getTextLength()
297 {
298 if (parent != null)
299 return parent.getTextLength();
300 return 0;
301 }
302
303 public String getEncoding()
304 {
305 if (parent != null)
306 return parent.getEncoding();
307 return null;
308 }
309
310 public boolean hasText()
311 {
312 if (parent != null)
313 return parent.hasText();
314 return false;
315 }
316
317 public Location getLocation()
318 {
319 if (parent != null)
320 return parent.getLocation();
321 return null;
322 }
323
324 public QName getName()
325 {
326 if (parent != null)
327 return parent.getName();
328 return null;
329 }
330
331 public String getLocalName()
332 {
333 if (parent != null)
334 return parent.getLocalName();
335 return null;
336 }
337
338 public boolean hasName()
339 {
340 if (parent != null)
341 return parent.hasName();
342 return false;
343 }
344
345 public String getNamespaceURI()
346 {
347 if (parent != null)
348 return parent.getNamespaceURI();
349 return null;
350 }
351
352 public String getPrefix()
353 {
354 if (parent != null)
355 return parent.getPrefix();
356 return null;
357 }
358
359 public String getVersion()
360 {
361 if (parent != null)
362 return parent.getVersion();
363 return null;
364 }
365
366 public boolean isStandalone()
367 {
368 if (parent != null)
369 return parent.isStandalone();
370 return false;
371 }
372
373 public boolean standaloneSet()
374 {
375 if (parent != null)
376 return parent.standaloneSet();
377 return false;
378 }
379
380 public String getCharacterEncodingScheme()
381 {
382 if (parent != null)
383 return parent.getCharacterEncodingScheme();
384 return null;
385 }
386
387 public String getPITarget()
388 {
389 if (parent != null)
390 return parent.getPITarget();
391 return null;
392 }
393
394 public String getPIData()
395 {
396 if (parent != null)
397 return parent.getPIData();
398 return null;
399 }
400
401 public Object getProperty(String name)
402 {
403 if (parent != null)
404 return parent.getProperty(name);
405 throw new IllegalArgumentException();
406 }
407
408 }