Example usage for javax.xml.stream.events StartElement getName

List of usage examples for javax.xml.stream.events StartElement getName

Introduction

In this page you can find the example usage for javax.xml.stream.events StartElement getName.

Prototype

public QName getName();

Source Link

Document

Get the name of this event

Usage

From source file:org.apache.olingo.commons.core.data.AtomGeoValueDeserializer.java

private GeospatialCollection collection(final XMLEventReader reader, final StartElement start,
        final EdmPrimitiveTypeKind type, final String crs) throws XMLStreamException {

    final List<Geospatial> geospatials = new ArrayList<Geospatial>();

    boolean foundEndCollection = false;
    while (reader.hasNext() && !foundEndCollection) {
        final XMLEvent event = reader.nextEvent();

        if (event.isStartElement() && event.asStartElement().getName().equals(Constants.QNAME_GEOMEMBERS)) {
            boolean foundEndMembers = false;
            while (reader.hasNext() && !foundEndMembers) {
                final XMLEvent subevent = reader.nextEvent();

                if (subevent.isStartElement()) {
                    geospatials.add(deserialize(reader, subevent.asStartElement(), GeoUtils.getType(
                            GeoUtils.getDimension(type), subevent.asStartElement().getName().getLocalPart())));
                }//w w  w  .  ja v a2s  . c  om

                if (subevent.isEndElement()
                        && Constants.QNAME_GEOMEMBERS.equals(subevent.asEndElement().getName())) {
                    foundEndMembers = true;
                }
            }
        }

        if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
            foundEndCollection = true;
        }
    }

    return new GeospatialCollection(GeoUtils.getDimension(type), crs, geospatials);
}

From source file:org.apache.olingo.commons.core.data.AtomPropertyDeserializer.java

private Value fromPrimitive(final XMLEventReader reader, final StartElement start, final EdmTypeInfo typeInfo)
        throws XMLStreamException {

    Value value = null;/*from  ww w.  ja v  a 2  s  .c o m*/

    boolean foundEndProperty = false;
    while (reader.hasNext() && !foundEndProperty) {
        final XMLEvent event = reader.nextEvent();

        if (event.isStartElement() && typeInfo != null && typeInfo.getPrimitiveTypeKind().isGeospatial()) {
            final EdmPrimitiveTypeKind geoType = EdmPrimitiveTypeKind.valueOfFQN(version,
                    typeInfo.getFullQualifiedName().toString());
            value = new GeospatialValueImpl(
                    this.geoDeserializer.deserialize(reader, event.asStartElement(), geoType));
        }

        if (event.isCharacters() && !event.asCharacters().isWhiteSpace()
                && (typeInfo == null || !typeInfo.getPrimitiveTypeKind().isGeospatial())) {

            value = new PrimitiveValueImpl(event.asCharacters().getData());
        }

        if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
            foundEndProperty = true;
        }
    }

    return value;
}

From source file:org.apache.olingo.commons.core.data.AtomPropertyDeserializer.java

private ComplexValue fromComplex(final XMLEventReader reader, final StartElement start)
        throws XMLStreamException {

    final ComplexValue value = new ComplexValueImpl();

    boolean foundEndProperty = false;
    while (reader.hasNext() && !foundEndProperty) {
        final XMLEvent event = reader.nextEvent();

        if (event.isStartElement()) {
            value.get().add(deserialize(reader, event.asStartElement()));
        }//from   ww w .j a va2 s . c  o  m

        if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
            foundEndProperty = true;
        }
    }

    return value;
}

From source file:org.apache.olingo.commons.core.data.AtomPropertyDeserializer.java

private CollectionValue fromCollection(final XMLEventReader reader, final StartElement start,
        final EdmTypeInfo typeInfo) throws XMLStreamException {

    final CollectionValueImpl value = new CollectionValueImpl();

    final EdmTypeInfo type = typeInfo == null ? null
            : new EdmTypeInfo.Builder().setTypeExpression(typeInfo.getFullQualifiedName().toString()).build();

    boolean foundEndProperty = false;
    while (reader.hasNext() && !foundEndProperty) {
        final XMLEvent event = reader.nextEvent();

        if (event.isStartElement()) {
            switch (guessPropertyType(reader)) {
            case COMPLEX:
                value.get().add(fromComplex(reader, event.asStartElement()));
                break;

            case PRIMITIVE:
                value.get().add(fromPrimitive(reader, event.asStartElement(), type));
                break;

            default:
                // do not add null or empty values
            }//w w w .j  a  va  2s  .  co m
        }

        if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
            foundEndProperty = true;
        }
    }

    return value;
}

From source file:org.apache.olingo.commons.core.data.AtomPropertyDeserializer.java

public AtomPropertyImpl deserialize(final XMLEventReader reader, final StartElement start)
        throws XMLStreamException {

    final AtomPropertyImpl property = new AtomPropertyImpl();
    property.setName(start.getName().getLocalPart());

    final Attribute typeAttr = start.getAttributeByName(this.typeQName);

    Value value;//from w w  w. j av a2s  .c o  m
    final Attribute nullAttr = start.getAttributeByName(this.nullQName);
    final String typeAttrValue = typeAttr == null ? null : typeAttr.getValue();

    if (nullAttr == null) {
        final EdmTypeInfo typeInfo = StringUtils.isBlank(typeAttrValue) ? null
                : new EdmTypeInfo.Builder().setTypeExpression(typeAttrValue).build();

        if (typeInfo != null) {
            property.setType(typeInfo.getTypeExpression());
        }

        final ODataPropertyType propType = typeInfo == null ? guessPropertyType(reader)
                : typeInfo.isCollection() ? ODataPropertyType.COLLECTION
                        : typeInfo.isPrimitiveType() ? ODataPropertyType.PRIMITIVE : ODataPropertyType.COMPLEX;

        switch (propType) {
        case COLLECTION:
            value = fromCollection(reader, start, typeInfo);
            break;

        case COMPLEX:
            value = fromComplex(reader, start);
            break;

        case PRIMITIVE:
            value = fromPrimitive(reader, start, typeInfo);
            break;

        case EMPTY:
        default:
            value = new PrimitiveValueImpl(StringUtils.EMPTY);
        }
    } else {
        value = new NullValueImpl();
    }

    property.setValue(value);

    return property;
}

From source file:org.apache.olingo.commons.core.serialization.AtomDeserializer.java

private Object fromPrimitive(final XMLEventReader reader, final StartElement start, final EdmTypeInfo typeInfo)
        throws XMLStreamException, EdmPrimitiveTypeException {

    Object value = null;//w  w  w  .j a va 2 s  .com

    boolean foundEndProperty = false;
    while (reader.hasNext() && !foundEndProperty) {
        final XMLEvent event = reader.nextEvent();

        if (event.isStartElement() && typeInfo != null && typeInfo.getPrimitiveTypeKind().isGeospatial()) {
            final EdmPrimitiveTypeKind geoType = EdmPrimitiveTypeKind.valueOfFQN(version,
                    typeInfo.getFullQualifiedName().toString());
            value = geoDeserializer.deserialize(reader, event.asStartElement(), geoType);
        }

        if (event.isCharacters() && !event.asCharacters().isWhiteSpace()
                && (typeInfo == null || !typeInfo.getPrimitiveTypeKind().isGeospatial())) {

            final String stringValue = event.asCharacters().getData();
            value = typeInfo == null ? stringValue : // TODO: add facets
                    ((EdmPrimitiveType) typeInfo.getType()).valueOfString(stringValue, true, null,
                            Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, true,
                            ((EdmPrimitiveType) typeInfo.getType()).getDefaultType());
        }

        if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
            foundEndProperty = true;
        }
    }

    return value;
}

From source file:org.apache.olingo.commons.core.serialization.AtomDeserializer.java

@SuppressWarnings("unchecked")
private Object fromComplexOrEnum(final XMLEventReader reader, final StartElement start)
        throws XMLStreamException, EdmPrimitiveTypeException {

    Object value = null;/*from w ww .j a va 2  s .  co  m*/

    boolean foundEndProperty = false;
    while (reader.hasNext() && !foundEndProperty) {
        final XMLEvent event = reader.nextEvent();

        if (event.isStartElement()) {
            if (value == null) {
                value = version.compareTo(ODataServiceVersion.V40) < 0 ? new ArrayList<Property>()
                        : new LinkedComplexValueImpl();
            }

            if (Constants.QNAME_ATOM_ELEM_LINK.equals(event.asStartElement().getName())) {
                final LinkImpl link = new LinkImpl();
                final Attribute rel = event.asStartElement()
                        .getAttributeByName(QName.valueOf(Constants.ATTR_REL));
                if (rel != null) {
                    link.setRel(rel.getValue());
                }
                final Attribute title = event.asStartElement()
                        .getAttributeByName(QName.valueOf(Constants.ATTR_TITLE));
                if (title != null) {
                    link.setTitle(title.getValue());
                }
                final Attribute href = event.asStartElement()
                        .getAttributeByName(QName.valueOf(Constants.ATTR_HREF));
                if (href != null) {
                    link.setHref(href.getValue());
                }
                final Attribute type = event.asStartElement()
                        .getAttributeByName(QName.valueOf(Constants.ATTR_TYPE));
                if (type != null) {
                    link.setType(type.getValue());
                }

                if (link.getRel().startsWith(
                        version.getNamespace(ODataServiceVersion.NamespaceKey.NAVIGATION_LINK_REL))) {

                    ((LinkedComplexValue) value).getNavigationLinks().add(link);
                    inline(reader, event.asStartElement(), link);
                } else if (link.getRel().startsWith(
                        version.getNamespace(ODataServiceVersion.NamespaceKey.ASSOCIATION_LINK_REL))) {

                    ((Valuable) value).asLinkedComplex().getAssociationLinks().add(link);
                }
            } else {
                (value instanceof LinkedComplexValue ? ((LinkedComplexValue) value).getValue()
                        : (List<Property>) value).add(property(reader, event.asStartElement()));
            }
        }

        if (event.isCharacters() && !event.asCharacters().isWhiteSpace()) {
            value = event.asCharacters().getData();
        }

        if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
            foundEndProperty = true;
        }
    }

    return value;
}

From source file:org.apache.olingo.commons.core.serialization.AtomDeserializer.java

private void fromCollection(final Valuable valuable, final XMLEventReader reader, final StartElement start,
        final EdmTypeInfo typeInfo) throws XMLStreamException, EdmPrimitiveTypeException {

    List<Object> values = new ArrayList<Object>();
    ValueType valueType = ValueType.COLLECTION_PRIMITIVE;

    final EdmTypeInfo type = typeInfo == null ? null
            : new EdmTypeInfo.Builder().setTypeExpression(typeInfo.getFullQualifiedName().toString()).build();

    boolean foundEndProperty = false;
    while (reader.hasNext() && !foundEndProperty) {
        final XMLEvent event = reader.nextEvent();

        if (event.isStartElement()) {
            switch (guessPropertyType(reader, typeInfo)) {
            case COMPLEX:
                final Object complexValue = fromComplexOrEnum(reader, event.asStartElement());
                valueType = complexValue instanceof LinkedComplexValue ? ValueType.COLLECTION_LINKED_COMPLEX
                        : ValueType.COLLECTION_COMPLEX;
                values.add(complexValue);
                break;

            case ENUM:
                valueType = ValueType.COLLECTION_ENUM;
                values.add(fromComplexOrEnum(reader, event.asStartElement()));
                break;

            case PRIMITIVE:
                final Object value = fromPrimitive(reader, event.asStartElement(), type);
                valueType = value instanceof Geospatial ? ValueType.COLLECTION_GEOSPATIAL
                        : ValueType.COLLECTION_PRIMITIVE;
                values.add(value);/*from   w  ww  . j  av  a2  s .  c o m*/
                break;

            default:
                // do not add null or empty values
            }
        }

        if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
            foundEndProperty = true;
        }
    }
    valuable.setValue(valueType, values);
}

From source file:org.apache.olingo.commons.core.serialization.AtomDeserializer.java

private Property property(final XMLEventReader reader, final StartElement start)
        throws XMLStreamException, EdmPrimitiveTypeException {

    final PropertyImpl property = new PropertyImpl();

    if (ODataServiceVersion.V40 == version && propertyValueQName.equals(start.getName())) {
        // retrieve name from context
        final Attribute context = start.getAttributeByName(contextQName);
        if (context != null) {
            property.setName(StringUtils.substringAfterLast(context.getValue(), "/"));
        }/*from  ww  w  . j a va2  s . c om*/
    } else {
        property.setName(start.getName().getLocalPart());
    }

    valuable(property, reader, start);

    return property;
}

From source file:org.apache.olingo.commons.core.serialization.AtomDeserializer.java

private void common(final XMLEventReader reader, final StartElement start, final AbstractODataObject object,
        final String key) throws XMLStreamException {

    boolean foundEndElement = false;
    while (reader.hasNext() && !foundEndElement) {
        final XMLEvent event = reader.nextEvent();

        if (event.isCharacters() && !event.asCharacters().isWhiteSpace()) {
            try {
                object.setCommonProperty(key, event.asCharacters().getData());
            } catch (ParseException e) {
                throw new XMLStreamException("While parsing Atom entry or feed common elements", e);
            }//from  www  .  j  a v  a  2s  .  c  om
        }

        if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
            foundEndElement = true;
        }
    }
}