1 package org.codehaus.xfire.util;
2
3 import javax.xml.namespace.NamespaceContext;
4 import javax.xml.namespace.QName;
5 import javax.xml.stream.Location;
6 import javax.xml.stream.XMLStreamException;
7 import javax.xml.stream.XMLStreamReader;
8
9 /***
10 * An XMLStreamReader which keeps track of the depth where we are.
11 *
12 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse </a>
13 * @since Nov 4, 2004
14 */
15 public class DepthXMLStreamReader
16 implements XMLStreamReader
17 {
18 XMLStreamReader reader;
19
20 private int depth = 0;
21
22 public DepthXMLStreamReader(XMLStreamReader reader)
23 {
24 this.reader = reader;
25 }
26
27 public int getDepth()
28 {
29 return depth;
30 }
31
32 public void close() throws XMLStreamException
33 {
34 reader.close();
35 }
36
37 public int getAttributeCount()
38 {
39 return reader.getAttributeCount();
40 }
41
42 public String getAttributeLocalName(int arg0)
43 {
44 return reader.getAttributeLocalName(arg0);
45 }
46
47 public QName getAttributeName(int arg0)
48 {
49 return reader.getAttributeName(arg0);
50 }
51
52 public String getAttributeNamespace(int arg0)
53 {
54 return reader.getAttributeNamespace(arg0);
55 }
56
57 public String getAttributePrefix(int arg0)
58 {
59 return reader.getAttributePrefix(arg0);
60 }
61
62 public String getAttributeType(int arg0)
63 {
64 return reader.getAttributeType(arg0);
65 }
66
67 public String getAttributeValue(int arg0)
68 {
69 return reader.getAttributeValue(arg0);
70 }
71
72 public String getAttributeValue(String arg0, String arg1)
73 {
74 return reader.getAttributeValue(arg0, arg1);
75 }
76
77 public String getCharacterEncodingScheme()
78 {
79 return reader.getCharacterEncodingScheme();
80 }
81
82 public String getElementText() throws XMLStreamException
83 {
84 return reader.getElementText();
85 }
86
87 public String getEncoding()
88 {
89 return reader.getEncoding();
90 }
91
92 public int getEventType()
93 {
94 return reader.getEventType();
95 }
96
97 public String getLocalName()
98 {
99 return reader.getLocalName();
100 }
101
102 public Location getLocation()
103 {
104 return reader.getLocation();
105 }
106
107 public QName getName()
108 {
109 return reader.getName();
110 }
111
112 public NamespaceContext getNamespaceContext()
113 {
114 return reader.getNamespaceContext();
115 }
116
117 public int getNamespaceCount()
118 {
119
120 return reader.getNamespaceCount();
121 }
122
123 public String getNamespacePrefix(int arg0)
124 {
125
126 return reader.getNamespacePrefix(arg0);
127 }
128
129 public String getNamespaceURI()
130 {
131
132 return reader.getNamespaceURI();
133 }
134
135 public String getNamespaceURI(int arg0)
136 {
137
138 return reader.getNamespaceURI(arg0);
139 }
140
141 public String getNamespaceURI(String arg0)
142 {
143
144 return reader.getNamespaceURI(arg0);
145 }
146
147 public String getPIData()
148 {
149
150 return reader.getPIData();
151 }
152
153 public String getPITarget()
154 {
155
156 return reader.getPITarget();
157 }
158
159 public String getPrefix()
160 {
161
162 return reader.getPrefix();
163 }
164
165 public Object getProperty(String arg0) throws IllegalArgumentException
166 {
167
168 return reader.getProperty(arg0);
169 }
170
171 public String getText()
172 {
173
174 return reader.getText();
175 }
176
177 public char[] getTextCharacters()
178 {
179 return reader.getTextCharacters();
180 }
181
182 public int getTextCharacters(int arg0, char[] arg1, int arg2, int arg3)
183 throws XMLStreamException
184 {
185 return reader.getTextCharacters(arg0, arg1, arg2, arg3);
186 }
187
188 public int getTextLength()
189 {
190 return reader.getTextLength();
191 }
192
193 public int getTextStart()
194 {
195
196 return reader.getTextStart();
197 }
198
199 public String getVersion()
200 {
201 return reader.getVersion();
202 }
203
204 public boolean hasName()
205 {
206
207 return reader.hasName();
208 }
209
210 public boolean hasNext() throws XMLStreamException
211 {
212 return reader.hasNext();
213 }
214
215 public boolean hasText()
216 {
217 return reader.hasText();
218 }
219
220 public boolean isAttributeSpecified(int arg0)
221 {
222 return reader.isAttributeSpecified(arg0);
223 }
224
225 public boolean isCharacters()
226 {
227
228 return reader.isCharacters();
229 }
230
231 public boolean isEndElement()
232 {
233
234 return reader.isEndElement();
235 }
236
237 public boolean isStandalone()
238 {
239
240 return reader.isStandalone();
241 }
242
243 public boolean isStartElement()
244 {
245
246 return reader.isStartElement();
247 }
248
249 public boolean isWhiteSpace()
250 {
251
252 return reader.isWhiteSpace();
253 }
254
255 public int next() throws XMLStreamException
256 {
257 int next = reader.next();
258
259 if ( next == START_ELEMENT )
260 {
261 depth++;
262 }
263 else if ( next == END_ELEMENT )
264 {
265 depth--;
266 }
267
268 return next;
269 }
270
271 public int nextTag() throws XMLStreamException
272 {
273 System.out.println("next tag.");
274 return reader.nextTag();
275 }
276
277 public void require(int arg0, String arg1, String arg2)
278 throws XMLStreamException
279 {
280 reader.require(arg0, arg1, arg2);
281 }
282
283 public boolean standaloneSet()
284 {
285 return reader.standaloneSet();
286 }
287
288 public int hashCode()
289 {
290 return reader.hashCode();
291 }
292
293 public boolean equals(Object arg0)
294 {
295 return reader.equals(arg0);
296 }
297
298 public String toString()
299 {
300 return reader.toString();
301 }
302
303 }