All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.axis2.databinding.utils.reader.NullXMLStreamReader Maven / Gradle / Ivy

There is a newer version: 1.8.2
Show newest version
package org.apache.axis2.databinding.utils.reader;

import javax.xml.namespace.NamespaceContext;
import javax.xml.namespace.QName;
import javax.xml.stream.Location;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
/*
 * Copyright 2004,2005 The Apache Software Foundation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

public class NullXMLStreamReader implements ADBXMLStreamReader {

    private QName outerQName = null;


    private static final int START_ELEMENT_STATE = 1;
    private static final int END_ELEMENT_STATE = 2;


    private static final QName NIL_QNAME = new QName("http://www.w3.org/2001/XMLSchema-instance","nil","xsi");
    private static final String NIL_VALUE_TRUE ="true";

    private int currentState = START_ELEMENT;

    public NullXMLStreamReader(QName outerQName) {
        this.outerQName = outerQName;
    }

    public Object getProperty(String key) throws IllegalArgumentException {
         //since optimization is a global property
        //we've to implement it everywhere
        if (OPTIMIZATION_ENABLED.equals(key)){
               return Boolean.TRUE;
           }else{
               return null;
           }
    }

    public int next() throws XMLStreamException {
        int returnEvent = START_DOCUMENT;
        switch(currentState){
            case START_ELEMENT_STATE:
                currentState = END_ELEMENT_STATE;
                returnEvent =  END_ELEMENT;
                break;
            case END_ELEMENT_STATE:
               throw new XMLStreamException("parser completed!");

        }

        return returnEvent;
    }

    public void require(int i, String string, String string1) throws XMLStreamException {
        //nothing
    }

    public String getElementText() throws XMLStreamException {
        return null;
    }

    public int nextTag() throws XMLStreamException {
        throw new UnsupportedOperationException();
    }

    public boolean hasNext() throws XMLStreamException {
        return (currentState!=END_ELEMENT_STATE);

    }

    public void close() throws XMLStreamException {
        //do nothing
    }

    public String getNamespaceURI(String string) {
        if (outerQName.getPrefix()!=null &&
                outerQName.getPrefix().equals(string)){
            return outerQName.getNamespaceURI();
        }else{
            return null;
        }
    }

    public boolean isStartElement() {
        return (currentState==START_ELEMENT_STATE);
    }

    public boolean isEndElement() {
        return (currentState==END_ELEMENT_STATE);
    }

    public boolean isCharacters() {
        return false;
    }

    public boolean isWhiteSpace() {
        return false;
    }

    public String getAttributeValue(String string, String string1) {
        if (string== null){//null namespace - ignore it
            if (NIL_QNAME.getLocalPart().equals(string1)){
                return NIL_VALUE_TRUE;
            }
        }
        return null;
    }

    public int getAttributeCount() {
        return 1;
    }

    public QName getAttributeName(int i) {
        return (i==0)? NIL_QNAME:null;
    }

    public String getAttributeNamespace(int i) {
        return (i==0)? NIL_QNAME.getNamespaceURI():null;
    }

    public String getAttributeLocalName(int i) {
        return (i==0)? NIL_QNAME.getLocalPart():null;
    }

    public String getAttributePrefix(int i) {
        return (i==0)? NIL_QNAME.getPrefix():null;
    }

    public String getAttributeType(int i) {
        throw new UnsupportedOperationException();
    }

    public String getAttributeValue(int i) {
        return (i==0)? NIL_VALUE_TRUE:null;
    }

    public boolean isAttributeSpecified(int i) {
        return (i == 0);
    }

    public int getNamespaceCount() {
        return 0;
    }

    public String getNamespacePrefix(int i) {
        return null;
    }

    public String getNamespaceURI(int i) {
        return null;
    }

    public NamespaceContext getNamespaceContext() {
        throw new UnsupportedOperationException();
    }

    public int getEventType() {
        int returnEvent = START_DOCUMENT;
        switch(currentState){
            case START_ELEMENT_STATE:
                returnEvent =  START_ELEMENT;
                break;
            case END_ELEMENT_STATE:
                returnEvent =  END_ELEMENT;
                break;

        }
       return returnEvent;
    }

    public String getText() {
        return null;
    }

    public char[] getTextCharacters() {
        return new char[0];  //To change body of implemented methods use File | Settings | File Templates.
    }

    public int getTextCharacters(int i, char[] chars, int i1, int i2) throws XMLStreamException {
        return 0;
    }

    public int getTextStart() {
        return 0;
    }

    public int getTextLength() {
        return 0;
    }

    public String getEncoding() {
        return null;
    }

    public boolean hasText() {
        return false;
    }

    public Location getLocation() {
        return new Location(){
            public int getLineNumber() {
                return 0;
            }

            public int getColumnNumber() {
                return 0;
            }

            public int getCharacterOffset() {
                return 0;
            }

            public String getPublicId() {
                return null;
            }

            public String getSystemId() {
                return null;
            }
        };
    }

    public QName getName() {
        return outerQName;
    }

    public String getLocalName() {
        return outerQName.getLocalPart();
    }

    public boolean hasName() {
        return true;
    }

    public String getNamespaceURI() {
        return outerQName.getNamespaceURI();
    }

    public String getPrefix() {
        return outerQName.getPrefix();
    }

    public String getVersion() {
        throw new UnsupportedOperationException();
    }

    public boolean isStandalone() {
        throw new UnsupportedOperationException();
    }

    public boolean standaloneSet() {
        throw new UnsupportedOperationException();
    }

    public String getCharacterEncodingScheme() {
        throw new UnsupportedOperationException();
    }

    public String getPITarget() {
        throw new UnsupportedOperationException();
    }

    public String getPIData() {
        throw new UnsupportedOperationException();
    }

    public boolean isDone() {
        return (currentState==END_ELEMENT_STATE);
    }

    public void addNamespaceContext(NamespaceContext nsContext) {
        //To change body of implemented methods use File | Settings | File Templates.
    }

    public void init() {
        //To change body of implemented methods use File | Settings | File Templates.
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy