001 /* EventReaderDelegate.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 java.util.NoSuchElementException;
041 import javax.xml.stream.XMLStreamException;
042 import javax.xml.stream.XMLEventReader;
043 import javax.xml.stream.events.XMLEvent;
044
045 /**
046 * Base class for event reader filters.
047 */
048 public class EventReaderDelegate
049 implements XMLEventReader
050 {
051
052 private XMLEventReader parent;
053
054 /**
055 * Constructs an empty filter with no parent set.
056 */
057 public EventReaderDelegate()
058 {
059 }
060
061 /**
062 * Constructs an empty filter with the given parent.
063 */
064 public EventReaderDelegate(XMLEventReader reader)
065 {
066 parent = reader;
067 }
068
069 /**
070 * Sets the parent.
071 */
072 public void setParent(XMLEventReader reader)
073 {
074 parent = reader;
075 }
076
077 /**
078 * Returns the parent.
079 */
080 public XMLEventReader getParent()
081 {
082 return parent;
083 }
084
085 public XMLEvent nextEvent()
086 throws XMLStreamException
087 {
088 if (parent != null)
089 return parent.nextEvent();
090 throw new NoSuchElementException();
091 }
092
093 public Object next()
094 {
095 if (parent != null)
096 return parent.next();
097 throw new NoSuchElementException();
098 }
099
100 public boolean hasNext()
101 {
102 if (parent != null)
103 return parent.hasNext();
104 return false;
105 }
106
107 public XMLEvent peek()
108 throws XMLStreamException
109 {
110 if (parent != null)
111 return parent.peek();
112 return null;
113 }
114
115 public String getElementText()
116 throws XMLStreamException
117 {
118 if (parent != null)
119 return parent.getElementText();
120 throw new XMLStreamException();
121 }
122
123 public XMLEvent nextTag()
124 throws XMLStreamException
125 {
126 if (parent != null)
127 return parent.nextTag();
128 throw new XMLStreamException();
129 }
130
131 public Object getProperty(String name)
132 throws IllegalArgumentException
133 {
134 if (parent != null)
135 return parent.getProperty(name);
136 throw new IllegalArgumentException(name);
137 }
138
139 public void close()
140 throws XMLStreamException
141 {
142 if (parent != null)
143 parent.close();
144 }
145
146 public void remove()
147 {
148 throw new UnsupportedOperationException();
149 }
150
151 }