List of usage examples for javax.xml.stream.events XMLEvent isCharacters
public boolean isCharacters();
From source file:org.apache.olingo.client.core.serialization.AtomDeserializer.java
private ODataError error(final XMLEventReader reader, final StartElement start) throws XMLStreamException { final ODataError error = new ODataError(); boolean setCode = false; boolean codeSet = false; boolean setMessage = false; boolean messageSet = false; boolean setTarget = false; boolean targetSet = false; boolean foundEndElement = false; while (reader.hasNext() && !foundEndElement) { final XMLEvent event = reader.nextEvent(); if (event.isStartElement()) { if (errorCodeQName.equals(event.asStartElement().getName())) { setCode = true;/*from w w w . j a va 2s . co m*/ } else if (errorMessageQName.equals(event.asStartElement().getName())) { setMessage = true; } else if (errorTargetQName.equals(event.asStartElement().getName())) { setTarget = true; } } if (event.isCharacters() && !event.asCharacters().isWhiteSpace()) { if (setCode && !codeSet) { error.setCode(event.asCharacters().getData()); setCode = false; codeSet = true; } if (setMessage && !messageSet) { error.setMessage(event.asCharacters().getData()); setMessage = false; messageSet = true; } if (setTarget && !targetSet) { error.setTarget(event.asCharacters().getData()); setTarget = false; targetSet = true; } } if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) { foundEndElement = true; } } return error; }
From source file:org.apache.olingo.client.core.serialization.AtomGeoValueDeserializer.java
private List<Point> points(final XMLEventReader reader, final StartElement start, final EdmPrimitiveTypeKind type, final SRID srid) throws XMLStreamException { final List<Point> result = new ArrayList<Point>(); boolean foundEndProperty = false; while (reader.hasNext() && !foundEndProperty) { final XMLEvent event = reader.nextEvent(); if (event.isCharacters() && !event.asCharacters().isWhiteSpace()) { final String[] pointInfo = event.asCharacters().getData().split(" "); final Point point = new Point(GeoUtils.getDimension(type), srid); try { point.setX(EdmDouble.getInstance().valueOfString(pointInfo[0], null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null, Double.class)); point.setY(EdmDouble.getInstance().valueOfString(pointInfo[1], null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null, Double.class)); } catch (EdmPrimitiveTypeException e) { throw new XMLStreamException("While deserializing point coordinates as double", e); }//from www . j av a2s .c om result.add(point); } if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) { foundEndProperty = true; } } // handles bad input, e.g. things like <gml:pos/> if (result.isEmpty()) { result.add(new Point(GeoUtils.getDimension(type), srid)); } return result; }
From source file:org.apache.olingo.commons.core.data.AtomGeoValueDeserializer.java
private List<Point> points(final XMLEventReader reader, final StartElement start, final EdmPrimitiveTypeKind type, final String crs) throws XMLStreamException { final List<Point> result = new ArrayList<Point>(); boolean foundEndProperty = false; while (reader.hasNext() && !foundEndProperty) { final XMLEvent event = reader.nextEvent(); if (event.isCharacters() && !event.asCharacters().isWhiteSpace()) { final String[] pointInfo = event.asCharacters().getData().split(" "); final Point point = new Point(GeoUtils.getDimension(type), crs); try { point.setX(EdmDouble.getInstance().valueOfString(pointInfo[0], null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null, Double.class)); point.setY(EdmDouble.getInstance().valueOfString(pointInfo[1], null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null, Double.class)); } catch (EdmPrimitiveTypeException e) { throw new XMLStreamException("While deserializing point coordinates as double", e); }/*w w w .j a v a 2s . c om*/ result.add(point); } if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) { foundEndProperty = true; } } return result; }
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;// w ww. j a v a2s. c om 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 ODataPropertyType guessPropertyType(final XMLEventReader reader) throws XMLStreamException { XMLEvent child = null;/*w w w . jav a2s . c o m*/ while (reader.hasNext() && child == null) { final XMLEvent event = reader.peek(); if (event.isCharacters() && event.asCharacters().isWhiteSpace()) { reader.nextEvent(); } else { child = event; } } final ODataPropertyType type; if (child == null) { type = ODataPropertyType.PRIMITIVE; } else { if (child.isStartElement()) { if (Constants.NS_GML.equals(child.asStartElement().getName().getNamespaceURI())) { type = ODataPropertyType.PRIMITIVE; } else if (elementQName.equals(child.asStartElement().getName())) { type = ODataPropertyType.COLLECTION; } else { type = ODataPropertyType.COMPLEX; } } else if (child.isCharacters()) { type = ODataPropertyType.PRIMITIVE; } else { type = ODataPropertyType.EMPTY; } } return type; }
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;/*from w w w . j a va 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 = 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;//w w w. ja va2 s . c o 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 ODataPropertyType guessPropertyType(final XMLEventReader reader, final EdmTypeInfo typeInfo) throws XMLStreamException { XMLEvent child = null;/*from w w w . j ava 2 s. c o m*/ while (reader.hasNext() && child == null) { final XMLEvent event = reader.peek(); if (event.isCharacters() && event.asCharacters().isWhiteSpace()) { reader.nextEvent(); } else { child = event; } } final ODataPropertyType type; if (child == null) { type = typeInfo == null || typeInfo.isPrimitiveType() ? ODataPropertyType.PRIMITIVE : ODataPropertyType.ENUM; } else { if (child.isStartElement()) { if (Constants.NS_GML.equals(child.asStartElement().getName().getNamespaceURI())) { type = ODataPropertyType.PRIMITIVE; } else if (elementQName.equals(child.asStartElement().getName())) { type = ODataPropertyType.COLLECTION; } else { type = ODataPropertyType.COMPLEX; } } else if (child.isCharacters()) { type = typeInfo == null || typeInfo.isPrimitiveType() ? ODataPropertyType.PRIMITIVE : ODataPropertyType.ENUM; } else { type = ODataPropertyType.EMPTY; } } return type; }
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); }/*ww w .ja v a 2 s. c o m*/ } if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) { foundEndElement = true; } } }
From source file:org.apache.olingo.commons.core.serialization.AtomDeserializer.java
private void inline(final XMLEventReader reader, final StartElement start, final LinkImpl link) throws XMLStreamException, EdmPrimitiveTypeException { boolean foundEndElement = false; while (reader.hasNext() && !foundEndElement) { final XMLEvent event = reader.nextEvent(); if (event.isStartElement()) { if (inlineQName.equals(event.asStartElement().getName())) { StartElement inline = null; while (reader.hasNext() && inline == null) { final XMLEvent innerEvent = reader.peek(); if (innerEvent.isCharacters() && innerEvent.asCharacters().isWhiteSpace()) { reader.nextEvent(); } else if (innerEvent.isStartElement()) { inline = innerEvent.asStartElement(); }//from w w w . ja v a 2 s. co m } if (inline != null) { if (Constants.QNAME_ATOM_ELEM_ENTRY.equals(inline.getName())) { link.setInlineEntity(entity(reader, inline)); } if (Constants.QNAME_ATOM_ELEM_FEED.equals(inline.getName())) { link.setInlineEntitySet(entitySet(reader, inline)); } } } else if (annotationQName.equals(event.asStartElement().getName())) { link.getAnnotations().add(annotation(reader, event.asStartElement())); } } if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) { foundEndElement = true; } } }