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

org.apache.xmlbeans.impl.validator.ValidatingInfoXMLStreamReader Maven / Gradle / Ivy

Go to download

The Apache Commons Codec package contains simple encoder and decoders for various formats such as Base64 and Hexadecimal. In addition to these widely used encoders and decoders, the codec package also maintains a collection of phonetic encoding utilities.

The newest version!
/*   Copyright 2004 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.
 */
package org.apache.xmlbeans.impl.validator;

import org.apache.xmlbeans.SchemaType;
import org.apache.xmlbeans.SchemaLocalElement;
import org.apache.xmlbeans.SchemaParticle;
import org.apache.xmlbeans.SchemaLocalAttribute;
import org.apache.xmlbeans.SchemaAttributeModel;
import org.apache.xmlbeans.GDate;
import org.apache.xmlbeans.GDuration;

import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.XMLEvent;
import javax.xml.namespace.QName;
import java.math.BigDecimal;
import java.util.List;

/**
 * Extension of {@link ValidatingXMLStreamReader} to provide Post Schema Validation Info
 * over an XMLStreamReader.
 *
 * @author Cezar Andrei (cezar.andrei at bea.com)
 *         Date: Aug 17, 2004
 */
public class ValidatingInfoXMLStreamReader
    extends ValidatingXMLStreamReader
    implements XMLStreamReader
{
    public ValidatingInfoXMLStreamReader()
    {
        super();
    }

    private int _attCount = -1;
    private int _attIndex =  0;

    public int nextWithAttributes()
        throws XMLStreamException
    {
        if (_attIndex < _attCount)
        {
            validate_attribute(_attIndex);
            _attIndex ++;
            return XMLEvent.ATTRIBUTE;
        }
        else
            return next();
    }

    protected void validate_attributes(int attCount)
    {
        _attCount = attCount;
        _attIndex = 0;
    }


    /**
     * @return Returns the SchemaType of the current element.
     * This can be different than getCurrentElement().getType() if xsi:type attribute is used.
     * Null is returned if no schema type is available.
     * For attribute types use {@link #getCurrentAttribute()}.getType().
     * Warning: the returned SchemaType can be an {@link org.apache.xmlbeans.XmlBeans#NO_TYPE},
     * see {@link org.apache.xmlbeans.SchemaType#isNoType}. Or can be the parent type, for unrecognized elements
     * that are part of wildcards.
     */
    public SchemaType getCurrentElementSchemaType()
    {
        return _validator==null ? null : _validator.getCurrentElementSchemaType();
    }

    /**
     * @return Returns the curent local element, null if one is not available, see {@link #getCurrentWildcardElement()}.
     */
    public SchemaLocalElement getCurrentElement ( )
    {
        return _validator==null ? null : _validator.getCurrentElement();
    }

    /**
     * @return Returns the current particle, if this is a wildcard particle
     * {@link org.apache.xmlbeans.SchemaParticle#WILDCARD} method {@link #getCurrentElement()}
     * might return null if wildcard's processContents is skip or lax.
     */
    public SchemaParticle getCurrentWildcardElement()
    {
        return _validator==null ? null : _validator.getCurrentWildcardElement();
    }

    /**
     * @return Returns the curent local attribute, global attribute if the current attribute is part of an
     * attribute wildcard, or null if none is available.
     */
    public SchemaLocalAttribute getCurrentAttribute()
    {
        return _validator==null ? null : _validator.getCurrentAttribute();
    }

    /**
     * @return Returns the attribute model for attributes if available, else null is returned.
     */
    public SchemaAttributeModel getCurrentWildcardAttribute()
    {
        return _validator==null ? null : _validator.getCurrentWildcardAttribute();
    }

    public String getStringValue()
    {
        return _validator==null ? null : _validator.getStringValue();
    }

    public BigDecimal getDecimalValue()
    {
        return _validator==null ? null : _validator.getDecimalValue();
    }

    public boolean getBooleanValue()
    {
        return _validator==null ? false : _validator.getBooleanValue();
    }

    public float getFloatValue()
    {
        return _validator==null ? 0 : _validator.getFloatValue();
    }

    public double getDoubleValue()
    {
        return _validator==null ? 0 : _validator.getDoubleValue();
    }

    public QName getQNameValue()
    {
        return _validator==null ? null : _validator.getQNameValue();
    }

    public GDate getGDateValue()
    {
        return _validator==null ? null : _validator.getGDateValue();
    }

    public GDuration getGDurationValue()
    {
        return _validator==null ? null : _validator.getGDurationValue();
    }

    public byte[] getByteArrayValue()
    {
        return _validator==null ? null : _validator.getByteArrayValue();
    }

    public List getListValue()
    {
        return _validator==null ? null : _validator.getListValue();
    }

    public List getListTypes()
    {
        return _validator==null ? null : _validator.getListTypes();
    }

    public SchemaType getUnionType()
    {
        return _validator==null ? null : _validator.getUnionType();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy