001 /* ReaderDelegate.java -- 002 Copyright (C) 2005,2006 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 ReaderDelegate 051 implements XMLStreamReader, XMLStreamConstants 052 { 053 054 private XMLStreamReader parent; 055 056 /** 057 * Constructs an empty filter with no parent set. 058 */ 059 public ReaderDelegate() 060 { 061 } 062 063 /** 064 * Constructs an empty filter with the specfied parent. 065 */ 066 public ReaderDelegate(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 } 409