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.fit.utils.AbstractXMLUtilities.java

private void skipElement(final StartElement start, final XMLEventReader reader, final XMLEventWriter writer,
        final boolean excludeStart) throws Exception {

    if (!excludeStart) {
        writeEvent(start, writer);/*ww w .ja  v  a2  s. co m*/
    }

    int depth = 1;
    boolean found = false;

    while (reader.hasNext() && !found) {
        final XMLEvent event = reader.nextEvent();

        writeEvent(event, writer);

        if (event.getEventType() == XMLStreamConstants.START_ELEMENT) {
            depth++;
        } else if (event.getEventType() == XMLStreamConstants.END_ELEMENT) {
            depth--;
            found = depth == 0 && start.getName().equals(event.asEndElement().getName());
        }
    }
}

From source file:org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.java

private Object primitive(final XMLEventReader reader, final StartElement start, final EdmType type,
        final boolean isNullable, final Integer maxLength, final Integer precision, final Integer scale,
        final boolean isUnicode) throws XMLStreamException, EdmPrimitiveTypeException, DeserializerException {

    Object value = null;//from  w  w w .j a  v  a2 s. c  om

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

        if (event.isCharacters() && !event.asCharacters().isWhiteSpace()) {
            if (type instanceof AbstractGeospatialType<?>) {
                throw new DeserializerException("geo types support not implemented",
                        DeserializerException.MessageKeys.NOT_IMPLEMENTED);
            }
            final EdmPrimitiveType primitiveType = (EdmPrimitiveType) type;
            final String stringValue = event.asCharacters().getData();
            value = primitiveType.valueOfString(stringValue, isNullable, maxLength, precision, scale, isUnicode,
                    primitiveType.getDefaultType());
        }

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

From source file:org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.java

private Object complex(final XMLEventReader reader, final StartElement start, final EdmComplexType edmComplex)
        throws XMLStreamException, EdmPrimitiveTypeException, DeserializerException {
    ComplexValue value = new ComplexValue();
    boolean foundEndProperty = false;
    while (reader.hasNext() && !foundEndProperty) {
        final XMLEvent event = reader.nextEvent();
        if (event.isStartElement()) {
            StartElement se = event.asStartElement();
            EdmProperty p = (EdmProperty) edmComplex.getProperty(se.getName().getLocalPart());
            value.getValue().add(property(reader, se, p.getType(), p.isNullable(), p.getMaxLength(),
                    p.getPrecision(), p.getScale(), p.isUnicode(), p.isCollection()));
        }// w ww . j av a2s.co  m
        if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
            foundEndProperty = true;
        }
    }
    return value;
}

From source file:org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.java

private void collection(final Valuable valuable, final XMLEventReader reader, final StartElement start,
        final EdmType edmType, final boolean isNullable, final Integer maxLength, final Integer precision,
        final Integer scale, final boolean isUnicode)
        throws XMLStreamException, EdmPrimitiveTypeException, DeserializerException {

    List<Object> values = new ArrayList<Object>();

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

        if (event.isStartElement()) {
            if (edmType instanceof EdmPrimitiveType) {
                values.add(primitive(reader, event.asStartElement(), edmType, isNullable, maxLength, precision,
                        scale, isUnicode));
            } else if (edmType instanceof EdmComplexType) {
                values.add(complex(reader, event.asStartElement(), (EdmComplexType) edmType));
            }//www. ja  v a2 s .  co m
            // do not add null or empty values
        }

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

From source file:org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.java

private Property property(final XMLEventReader reader, final StartElement start, final EdmType edmType,
        final boolean isNullable, final Integer maxLength, final Integer precision, final Integer scale,
        final boolean isUnicode, final boolean isCollection)
        throws XMLStreamException, EdmPrimitiveTypeException, DeserializerException {

    final Property property = new Property();

    if (propertyValueQName.equals(start.getName())) {
        // retrieve name from context
        final Attribute context = start.getAttributeByName(contextQName);
        if (context != null) {
            property.setName(StringUtils.substringAfterLast(context.getValue(), "/"));
        }/* ww w .  j  a v a2s  . c  o m*/
    } else {
        property.setName(start.getName().getLocalPart());
    }
    valuable(property, reader, start, edmType, isNullable, maxLength, precision, scale, isUnicode,
            isCollection);
    return property;
}

From source file:org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.java

private void valuable(final Valuable valuable, final XMLEventReader reader, final StartElement start,
        final EdmType edmType, final boolean isNullable, final Integer maxLength, final Integer precision,
        final Integer scale, final boolean isUnicode, final boolean isCollection)
        throws XMLStreamException, EdmPrimitiveTypeException, DeserializerException {

    final Attribute nullAttr = start.getAttributeByName(nullQName);
    if (nullAttr != null) {
        // found null
        boolean foundEndProperty = false;
        while (reader.hasNext() && !foundEndProperty) {
            final XMLEvent event = reader.nextEvent();
            if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
                foundEndProperty = true;
            }//  w ww .java  2 s  . com
        }
        valuable.setValue(getValueType(edmType, false), null);
        return;
    }

    final String typeName = edmType.getFullQualifiedName().getFullQualifiedNameAsString();
    valuable.setType(isCollection ? ("Collection(" + typeName + ")") : typeName);
    if (isCollection) {
        collection(valuable, reader, start, edmType, isNullable, maxLength, precision, scale, isUnicode);
    } else if (edmType instanceof EdmPrimitiveType) {
        valuable.setValue(getValueType(edmType, false),
                primitive(reader, start, edmType, isNullable, maxLength, precision, scale, isUnicode));
    } else if (edmType instanceof EdmComplexType) {
        valuable.setValue(ValueType.COMPLEX, complex(reader, start, (EdmComplexType) edmType));
    } else if (edmType instanceof EdmEntityType) {
        valuable.setValue(ValueType.ENTITY, entity(reader, start, (EdmEntityType) edmType));
    }
    // do not add null or empty values
}

From source file:org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.java

private void inline(final XMLEventReader reader, final StartElement start, final Link link,
        final EdmEntityType edmEntityType)
        throws XMLStreamException, EdmPrimitiveTypeException, DeserializerException {

    boolean foundEndElement = false;
    EdmNavigationProperty navigationProperty = edmEntityType.getNavigationProperty(link.getTitle());
    while (reader.hasNext() && !foundEndElement) {
        final XMLEvent event = reader.nextEvent();

        if (event.isStartElement()) {
            if (inlineQName.equals(event.asStartElement().getName())) {
                StartElement inline = getStartElement(reader);
                if (inline != null) {
                    if (Constants.QNAME_ATOM_ELEM_ENTRY.equals(inline.getName())) {
                        if (navigationProperty.isCollection()) {
                            throw new DeserializerException(
                                    "Navigation Property " + link.getTitle() + " must be collection entities",
                                    DeserializerException.MessageKeys.INVALID_ANNOTATION_TYPE, link.getTitle());
                        }//from  w w w .  j  a va  2  s.c om

                        link.setInlineEntity(entity(reader, inline, navigationProperty.getType()));
                    }
                    if (Constants.QNAME_ATOM_ELEM_FEED.equals(inline.getName())) {
                        if (!navigationProperty.isCollection()) {
                            throw new DeserializerException(
                                    "Navigation Property " + link.getTitle() + " must be single entity",
                                    DeserializerException.MessageKeys.INVALID_ANNOTATION_TYPE, link.getTitle());
                        }
                        link.setInlineEntitySet(entitySet(reader, inline, navigationProperty.getType()));
                    }
                }
            } else if (entryRefQName.equals(event.asStartElement().getName())) {
                if (navigationProperty.isCollection()) {
                    throw new DeserializerException(
                            "Binding annotation: " + link.getTitle()
                                    + " must be collection of entity references",
                            DeserializerException.MessageKeys.INVALID_ANNOTATION_TYPE, link.getTitle());
                }
                link.setBindingLink(entityRef(reader, event.asStartElement()));
                link.setType(Constants.ENTITY_BINDING_LINK_TYPE);
            } else if (Constants.QNAME_ATOM_ELEM_FEED.equals(event.asStartElement().getName())) {
                if (navigationProperty.isCollection()) {
                    throw new DeserializerException(
                            "Binding annotation: " + link.getTitle() + " must be single entity references",
                            DeserializerException.MessageKeys.INVALID_ANNOTATION_TYPE, link.getTitle());
                }
                link.setBindingLinks(entityRefCollection(reader, event.asStartElement()));
                link.setType(Constants.ENTITY_COLLECTION_BINDING_LINK_TYPE);
            }
        }

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

From source file:org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.java

private List<String> entityRefCollection(final XMLEventReader reader, final StartElement start)
        throws XMLStreamException {
    boolean foundEndElement = false;
    ArrayList<String> references = new ArrayList<String>();
    while (reader.hasNext() && !foundEndElement) {
        final XMLEvent event = reader.nextEvent();

        if (event.isStartElement() && entryRefQName.equals(event.asStartElement().getName())) {
            references.add(entityRef(reader, event.asStartElement()));
        }//from   ww  w . j  av a2  s .co  m

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

From source file:org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.java

private String entityRef(final XMLEventReader reader, final StartElement start) throws XMLStreamException {
    boolean foundEndElement = false;
    final Attribute entityRefId = start.getAttributeByName(Constants.QNAME_ATOM_ATTR_ID);
    while (reader.hasNext() && !foundEndElement) {
        final XMLEvent event = reader.nextEvent();
        if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
            foundEndElement = true;/*  w  w  w . j a  v  a2  s .co  m*/
        }
    }
    return entityRefId.getValue();
}

From source file:org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.java

private void properties(final XMLEventReader reader, final StartElement start, final Entity entity,
        final EdmEntityType edmEntityType)
        throws XMLStreamException, EdmPrimitiveTypeException, DeserializerException {

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

        if (event.isStartElement()) {
            String propertyName = event.asStartElement().getName().getLocalPart();
            EdmProperty edmProperty = (EdmProperty) edmEntityType.getProperty(propertyName);
            if (edmProperty == null) {
                throw new DeserializerException("Invalid Property in payload with name: " + propertyName,
                        DeserializerException.MessageKeys.UNKNOWN_CONTENT, propertyName);
            }//w  w w  . j a v a  2 s  . c o m
            entity.getProperties()
                    .add(property(reader, event.asStartElement(), edmProperty.getType(),
                            edmProperty.isNullable(), edmProperty.getMaxLength(), edmProperty.getPrecision(),
                            edmProperty.getScale(), edmProperty.isUnicode(), edmProperty.isCollection()));
        }

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