Example usage for javax.xml.stream.events XMLEvent isEndElement

List of usage examples for javax.xml.stream.events XMLEvent isEndElement

Introduction

In this page you can find the example usage for javax.xml.stream.events XMLEvent isEndElement.

Prototype

public boolean isEndElement();

Source Link

Document

A utility function to check if this event is a EndElement.

Usage

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

private void count(final XMLEventReader reader, final StartElement start, final EntitySet entitySet)
        throws XMLStreamException {

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

        if (event.isCharacters() && !event.asCharacters().isWhiteSpace()) {
            entitySet.setCount(Integer.valueOf(event.asCharacters().getData()));
        }/* w  ww. j  a va 2 s  .c om*/

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

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

private EntitySet entitySet(final XMLEventReader reader, final StartElement start)
        throws XMLStreamException, EdmPrimitiveTypeException {
    if (!Constants.QNAME_ATOM_ELEM_FEED.equals(start.getName())) {
        return null;
    }//from  w  ww .  jav  a 2  s  . c o m
    final EntitySetImpl entitySet = new EntitySetImpl();
    final Attribute xmlBase = start.getAttributeByName(Constants.QNAME_ATTR_XML_BASE);
    if (xmlBase != null) {
        entitySet.setBaseURI(xmlBase.getValue());
    }

    boolean foundEndFeed = false;
    while (reader.hasNext() && !foundEndFeed) {
        final XMLEvent event = reader.nextEvent();
        if (event.isStartElement()) {
            if (countQName.equals(event.asStartElement().getName())) {
                count(reader, event.asStartElement(), entitySet);
            } else if (Constants.QNAME_ATOM_ELEM_ID.equals(event.asStartElement().getName())) {
                common(reader, event.asStartElement(), entitySet, "id");
            } else if (Constants.QNAME_ATOM_ELEM_TITLE.equals(event.asStartElement().getName())) {
                common(reader, event.asStartElement(), entitySet, "title");
            } else if (Constants.QNAME_ATOM_ELEM_SUMMARY.equals(event.asStartElement().getName())) {
                common(reader, event.asStartElement(), entitySet, "summary");
            } else if (Constants.QNAME_ATOM_ELEM_UPDATED.equals(event.asStartElement().getName())) {
                common(reader, event.asStartElement(), entitySet, "updated");
            } else if (Constants.QNAME_ATOM_ELEM_LINK.equals(event.asStartElement().getName())) {
                final Attribute rel = event.asStartElement()
                        .getAttributeByName(QName.valueOf(Constants.ATTR_REL));
                if (rel != null) {
                    if (Constants.NEXT_LINK_REL.equals(rel.getValue())) {
                        final Attribute href = event.asStartElement()
                                .getAttributeByName(QName.valueOf(Constants.ATTR_HREF));
                        if (href != null) {
                            entitySet.setNext(URI.create(href.getValue()));
                        }
                    }
                    if (ODataServiceVersion.V40.getNamespace(NamespaceKey.DELTA_LINK_REL)
                            .equals(rel.getValue())) {
                        final Attribute href = event.asStartElement()
                                .getAttributeByName(QName.valueOf(Constants.ATTR_HREF));
                        if (href != null) {
                            entitySet.setDeltaLink(URI.create(href.getValue()));
                        }
                    }
                }
            } else if (Constants.QNAME_ATOM_ELEM_ENTRY.equals(event.asStartElement().getName())) {
                entitySet.getEntities().add(entity(reader, event.asStartElement()));
            } else if (entryRefQName.equals(event.asStartElement().getName())) {
                entitySet.getEntities().add(entityRef(event.asStartElement()));
            } else if (annotationQName.equals(event.asStartElement().getName())) {
                entitySet.getAnnotations().add(annotation(reader, event.asStartElement()));
            }
        }

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

    return entitySet;
}

From source file:org.apache.olingo.fit.metadata.Metadata.java

private Schema getSchema(final StartElement start, final XMLEventReader reader) throws XMLStreamException {
    final Schema schema = new Schema(start.getAttributeByName(new QName("Namespace")).getValue());

    boolean completed = false;

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

        if (event.isStartElement() && event.asStartElement().getName().equals(new QName(DEF_NS, "EntityType"))
                || event.isStartElement()
                        && event.asStartElement().getName().equals(new QName(DEF_NS, "ComplexType"))) {
            final EntityType entityType = getEntityType(event.asStartElement(), reader);
            schema.addEntityType(entityType.getName(), entityType);
        } else if (event.isStartElement()
                && event.asStartElement().getName().equals(new QName(DEF_NS, "EntityContainer"))) {
            final org.apache.olingo.fit.metadata.Container container = getContainer(event.asStartElement(),
                    reader);//from   www .ja  va 2 s. c o  m
            schema.addContainer(container.getName(), container);
        } else if (event.isEndElement() && event.asEndElement().getName().equals(start.getName())) {
            completed = true;
        }
    }

    return schema;
}

From source file:org.apache.olingo.fit.metadata.Metadata.java

private org.apache.olingo.fit.metadata.Container getContainer(final StartElement start,
        final XMLEventReader reader) throws XMLStreamException {
    final org.apache.olingo.fit.metadata.Container container = new org.apache.olingo.fit.metadata.Container(
            start.getAttributeByName(new QName("Name")).getValue());

    boolean completed = false;

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

        if (event.isStartElement() && (event.asStartElement().getName().equals(new QName(DEF_NS, "EntitySet"))
                || event.asStartElement().getName().equals(new QName(DEF_NS, "Singleton")))) {
            final EntitySet entitySet = getEntitySet(event.asStartElement(), reader);
            container.addEntitySet(entitySet.getName(), entitySet);
        } else if (event.isEndElement() && event.asEndElement().getName().equals(start.getName())) {
            completed = true;/* ww w.j  ava  2 s  . c o m*/
        }
    }

    return container;
}

From source file:org.apache.olingo.fit.metadata.Metadata.java

private EntityType getEntityType(final StartElement start, final XMLEventReader reader)
        throws XMLStreamException {
    final EntityType entityType = new EntityType(start.getAttributeByName(new QName("Name")).getValue());
    final Attribute baseType = start.getAttributeByName(new QName("BaseType"));
    if (baseType != null) {
        entityType.setBaseType(baseType.getValue());
    }//from   w w w  .j a va  2 s.  co  m
    final Attribute openType = start.getAttributeByName(new QName("OpenType"));
    if (openType != null) {
        entityType.setOpenType(BooleanUtils.toBoolean(openType.getValue()));
    }

    boolean completed = false;

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

        if (event.isStartElement() && event.asStartElement().getName().equals(new QName(DEF_NS, "Property"))) {
            final org.apache.olingo.fit.metadata.Property property = getProperty(event.asStartElement());
            entityType.addProperty(property.getName(), property);
        } else if (event.isStartElement()
                && event.asStartElement().getName().equals(new QName(DEF_NS, "NavigationProperty"))) {
            final NavigationProperty property = getNavigationProperty(event.asStartElement());
            entityType.addNavigationProperty(property.getName(), property);
        } else if (event.isEndElement() && event.asEndElement().getName().equals(start.getName())) {
            completed = true;
        }
    }

    return entityType;
}

From source file:org.apache.olingo.fit.metadata.Metadata.java

private EntitySet getEntitySet(final StartElement start, final XMLEventReader reader)
        throws XMLStreamException {
    final EntitySet entitySet = "Singleton".equals(start.getName().getLocalPart())
            ? new EntitySet(start.getAttributeByName(new QName("Name")).getValue(), true)
            : new EntitySet(start.getAttributeByName(new QName("Name")).getValue());

    Attribute type = start.getAttributeByName(new QName("EntityType"));
    if (type == null) {
        type = start.getAttributeByName(new QName("Type"));
        entitySet.setType(type == null ? null : type.getValue());
    } else {//from  ww w  .  j  ava 2  s .  c  om
        entitySet.setType(type.getValue());
    }

    boolean completed = false;

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

        if (event.isStartElement()
                && event.asStartElement().getName().equals(new QName(DEF_NS, "NavigationPropertyBinding"))) {
            final String path = event.asStartElement().getAttributeByName(new QName("Path")).getValue();
            final String target = event.asStartElement().getAttributeByName(new QName("Target")).getValue();
            entitySet.addBinding(path, target);
        } else if (event.isEndElement() && event.asEndElement().getName().equals(start.getName())) {
            completed = true;
        }
    }

    return entitySet;
}

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  ww. java2 s  . c  o m

    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 w  w  .  j a  va 2 s.c  om
        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));
            }/*from   w ww  .ja v  a 2 s  .c  om*/
            // 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 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;
            }/*  ww w .  j a v  a2 s.  c  o m*/
        }
        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
}