001    /** 
002     * 
003     * Copyright 2005 Protique Ltd
004     * 
005     * Licensed under the Apache License, Version 2.0 (the "License"); 
006     * you may not use this file except in compliance with the License. 
007     * You may obtain a copy of the License at 
008     * 
009     * http://www.apache.org/licenses/LICENSE-2.0
010     * 
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS, 
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
014     * See the License for the specific language governing permissions and 
015     * limitations under the License. 
016     * 
017     **/
018    package org.codehaus.activesoap.util;
019    
020    import org.w3c.dom.Node;
021    import org.apache.xmlbeans.xml.stream.XMLInputStream;
022    import org.apache.xmlbeans.impl.inst2xsd.util.Type;
023    
024    import javax.xml.stream.XMLStreamReader;
025    import javax.xml.stream.XMLEventReader;
026    import javax.xml.stream.XMLStreamException;
027    import javax.xml.stream.Location;
028    import javax.xml.stream.events.StartElement;
029    import javax.xml.stream.events.XMLEvent;
030    import javax.xml.namespace.QName;
031    import javax.xml.namespace.NamespaceContext;
032    import java.io.File;
033    
034    import javanet.staxutils.helpers.ListEventReader;
035    
036    /**
037     * An {@link XMLStreamReader} implementation which delegates to
038     * an {@link XMLEventReader} instance for its content
039     *
040     * @version $Revision: 1.1 $
041     */
042    public class XMLEventStreamReader implements XMLStreamReader {
043        private XMLEventReader reader;
044        private XMLEvent nextEvent;
045        private NamespaceContext context;
046    
047        public XMLEventStreamReader(XMLEventReader reader) throws XMLStreamException {
048            this.reader = reader;
049            nextEvent = reader.nextEvent();
050        }
051    
052        public void close() throws XMLStreamException {
053            reader.close();
054        }
055    
056        public int getAttributeCount() {
057            return 0;  /** TODO */
058        }
059    
060        public String getAttributeLocalName(int index) {
061            return null;  /** TODO */
062        }
063    
064        public QName getAttributeName(int index) {
065            return null;  /** TODO */
066        }
067    
068        public String getAttributeNamespace(int index) {
069            return null;  /** TODO */
070        }
071    
072        public String getAttributePrefix(int index) {
073            return null;  /** TODO */
074        }
075    
076        public String getAttributeType(int index) {
077            return null;  /** TODO */
078        }
079    
080        public String getAttributeValue(int index) {
081            return null;  /** TODO */
082        }
083    
084        public String getAttributeValue(String namespaceURI, String localName) {
085            return null;  /** TODO */
086        }
087    
088        public String getCharacterEncodingScheme() {
089            return null;  /** TODO */
090        }
091    
092        public String getElementText() throws XMLStreamException {
093            return null;  /** TODO */
094        }
095    
096        public String getEncoding() {
097            return null;  /** TODO */
098        }
099    
100        public int getEventType() {
101            return nextEvent.getEventType();
102        }
103    
104        public String getLocalName() {
105            return getName().getLocalPart();
106        }
107    
108        public Location getLocation() {
109            return nextEvent.getLocation();
110        }
111    
112        public QName getName() {
113            if (nextEvent.isStartElement()) {
114                return nextEvent.asStartElement().getName();
115            }
116            else if (nextEvent.isEndElement()) {
117                return nextEvent.asEndElement().getName();
118            }
119            return null;
120        }
121    
122        public NamespaceContext getNamespaceContext() {
123            return context;
124        }
125    
126        public int getNamespaceCount() {
127            return 0;  /** TODO */
128        }
129    
130        public String getNamespacePrefix(int index) {
131            return null;  /** TODO */
132        }
133    
134        public String getNamespaceURI() {
135            return getName().getNamespaceURI();
136        }
137    
138        public String getNamespaceURI(int index) {
139            return null;  /** TODO */
140        }
141    
142        public String getNamespaceURI(String prefix) {
143            return null;  /** TODO */
144        }
145    
146        public String getPIData() {
147            return null;  /** TODO */
148        }
149    
150        public String getPITarget() {
151            return null;  /** TODO */
152        }
153    
154        public String getPrefix() {
155            return getName().getPrefix();
156        }
157    
158        public Object getProperty(String name) throws IllegalArgumentException {
159            return null;  /** TODO */
160        }
161    
162        public String getText() {
163            return nextEvent.asCharacters().getData();
164        }
165    
166        public char[] getTextCharacters() {
167            return nextEvent.asCharacters().getData().toCharArray();
168        }
169    
170        public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length) throws XMLStreamException {
171            return 0;  /** TODO */
172        }
173    
174        public int getTextLength() {
175            return getText().length();
176        }
177    
178        public int getTextStart() {
179            return 0;
180        }
181    
182        public String getVersion() {
183            return null;  /** TODO */
184        }
185    
186        public boolean hasName() {
187            return nextEvent != null && nextEvent.isStartElement();
188        }
189    
190        public boolean hasNext() throws XMLStreamException {
191            if (reader.hasNext()) {
192                nextEvent = reader.nextEvent();
193                return true;
194            }
195            return false;
196        }
197    
198        public boolean hasText() {
199            return nextEvent != null && nextEvent.isCharacters();
200        }
201    
202        public boolean isAttributeSpecified(int index) {
203            return false;  /** TODO */
204        }
205    
206        public boolean isCharacters() {
207            return nextEvent != null && nextEvent.isCharacters();
208        }
209    
210        public boolean isEndElement() {
211            return nextEvent != null && nextEvent.isEndElement();
212        }
213    
214        public boolean isStandalone() {
215            return false;  /** TODO */
216        }
217    
218        public boolean isStartElement() {
219            return nextEvent != null && nextEvent.isStartElement();
220        }
221    
222        public boolean isWhiteSpace() {
223            return nextEvent != null && nextEvent.isCharacters() && nextEvent.asCharacters().isWhiteSpace();
224        }
225    
226        public int next() throws XMLStreamException {
227            return nextEvent.getEventType();
228        }
229    
230        public int nextTag() throws XMLStreamException {
231            return nextEvent.getEventType();
232        }
233    
234        public void require(int type, String namespaceURI, String localName) throws XMLStreamException {
235            /** TODO */
236        }
237    
238        public boolean standaloneSet() {
239            return false;  /** TODO */
240        }
241    
242        protected StartElement startElement() {
243            return nextEvent.asStartElement();
244        }
245    }
246    
247