List of usage examples for javax.xml.stream XMLStreamReader getEventType
public int getEventType();
From source file:com.microsoft.alm.plugin.context.soap.CatalogServiceImpl.java
/** * Advances the {@link XMLStreamReader} until it has read the end of the * current element. Useful when an element is encountered while reading a * stream, and it should be skipped.//from w w w . ja va2 s . co m * * @param reader the stream reader to read from (not null). */ private static void readUntilElementEnd(final XMLStreamReader reader) throws XMLStreamException { int event = reader.getEventType(); /* * Start element depth at 1, increment when an element is started (not * including the element that we start with), decrement when an element * is ended, and when it goes to 0 we've read the end of the original * reader's element. */ int elementDepth = 1; boolean firstTime = true; while (true) { switch (event) { case XMLStreamConstants.START_ELEMENT: /* * Don't increment depth the first time through, because the * caller opened the element. */ if (firstTime) { firstTime = false; } else { elementDepth++; } break; case XMLStreamConstants.END_ELEMENT: elementDepth--; if (elementDepth < 1) { /* * We just read the end element for the original * element. */ return; } break; default: /* * Things like characters, comments, attributes, etc. Ignore * them all. */ } event = reader.next(); } }
From source file:com.microsoft.windowsazure.services.table.client.AtomPubParser.java
/** * Reserved for internal use. Parses the operation response as a collection of entities. Reads entity data from the * specified input stream using the specified class type and optionally projects each entity result with the * specified resolver into an {@link ODataPayload} containing a collection of {@link TableResult} objects. . * /*from w ww . j av a 2s . c o m*/ * @param inStream * The <code>InputStream</code> to read the data to parse from. * @param clazzType * The class type <code>T</code> implementing {@link TableEntity} for the entities returned. Set to * <code>null</code> to ignore the returned entities and copy only response properties into the * {@link TableResult} objects. * @param resolver * An {@link EntityResolver} instance to project the entities into instances of type <code>R</code>. Set * to <code>null</code> to return the entities as instances of the class type <code>T</code>. * @param opContext * An {@link OperationContext} object used to track the execution of the operation. * @return * An {@link ODataPayload} containing a collection of {@link TableResult} objects with the parsed operation * response. * * @throws XMLStreamException * if an error occurs while accessing the stream. * @throws ParseException * if an error occurs while parsing the stream. * @throws InstantiationException * if an error occurs while constructing the result. * @throws IllegalAccessException * if an error occurs in reflection while parsing the result. * @throws StorageException * if a storage service error occurs. */ @SuppressWarnings("unchecked") protected static <T extends TableEntity, R> ODataPayload<?> parseResponse(final InputStream inStream, final Class<T> clazzType, final EntityResolver<R> resolver, final OperationContext opContext) throws XMLStreamException, ParseException, InstantiationException, IllegalAccessException, StorageException { ODataPayload<T> corePayload = null; ODataPayload<R> resolvedPayload = null; ODataPayload<?> commonPayload = null; if (resolver != null) { resolvedPayload = new ODataPayload<R>(); commonPayload = resolvedPayload; } else { corePayload = new ODataPayload<T>(); commonPayload = corePayload; } final XMLStreamReader xmlr = Utility.createXMLStreamReaderFromStream(inStream); int eventType = xmlr.getEventType(); xmlr.require(XMLStreamConstants.START_DOCUMENT, null, null); eventType = xmlr.next(); xmlr.require(XMLStreamConstants.START_ELEMENT, null, ODataConstants.FEED); // skip feed chars eventType = xmlr.next(); while (xmlr.hasNext()) { eventType = xmlr.next(); if (eventType == XMLStreamConstants.CHARACTERS) { xmlr.getText(); continue; } final String name = xmlr.getName().toString(); if (eventType == XMLStreamConstants.START_ELEMENT) { if (name.equals(ODataConstants.BRACKETED_ATOM_NS + ODataConstants.ENTRY)) { final TableResult res = parseEntity(xmlr, clazzType, resolver, opContext); if (corePayload != null) { corePayload.tableResults.add(res); } if (resolver != null) { resolvedPayload.results.add((R) res.getResult()); } else { corePayload.results.add((T) res.getResult()); } } } else if (eventType == XMLStreamConstants.END_ELEMENT && name.equals(ODataConstants.BRACKETED_ATOM_NS + ODataConstants.FEED)) { break; } } xmlr.require(XMLStreamConstants.END_ELEMENT, null, ODataConstants.FEED); return commonPayload; }
From source file:com.microsoft.windowsazure.services.table.client.AtomPubParser.java
/** * Reserved for internal use. Reads the properties of an entity from the stream into a map of property names to * typed values. Reads the entity data as an AtomPub Entry Resource from the specified {@link XMLStreamReader} into * a map of <code>String</code> property names to {@link EntityProperty} data typed values. * //ww w .j a va 2s .c o m * @param xmlr * The <code>XMLStreamReader</code> to read the data from. * @param opContext * An {@link OperationContext} object used to track the execution of the operation. * * @return * A <code>java.util.HashMap</code> containing a map of <code>String</code> property names to * {@link EntityProperty} data typed values found in the entity data. * @throws XMLStreamException * if an error occurs accessing the stream. * @throws ParseException * if an error occurs converting the input to a particular data type. */ protected static HashMap<String, EntityProperty> readProperties(final XMLStreamReader xmlr, final OperationContext opContext) throws XMLStreamException, ParseException { int eventType = xmlr.getEventType(); xmlr.require(XMLStreamConstants.START_ELEMENT, null, ODataConstants.PROPERTIES); final HashMap<String, EntityProperty> properties = new HashMap<String, EntityProperty>(); while (xmlr.hasNext()) { eventType = xmlr.next(); if (eventType == XMLStreamConstants.CHARACTERS) { xmlr.getText(); continue; } if (eventType == XMLStreamConstants.START_ELEMENT && xmlr.getNamespaceURI().equals(ODataConstants.DATA_SERVICES_NS)) { final String key = xmlr.getLocalName(); String val = Constants.EMPTY_STRING; String edmType = null; if (xmlr.getAttributeCount() > 0) { edmType = xmlr.getAttributeValue(ODataConstants.DATA_SERVICES_METADATA_NS, ODataConstants.TYPE); } // move to chars eventType = xmlr.next(); if (eventType == XMLStreamConstants.CHARACTERS) { val = xmlr.getText(); // end element eventType = xmlr.next(); } xmlr.require(XMLStreamConstants.END_ELEMENT, null, key); final EntityProperty newProp = new EntityProperty(val, EdmType.parse(edmType)); properties.put(key, newProp); } else if (eventType == XMLStreamConstants.END_ELEMENT && xmlr.getName().toString() .equals(ODataConstants.BRACKETED_DATA_SERVICES_METADATA_NS + ODataConstants.PROPERTIES)) { // End read properties break; } } xmlr.require(XMLStreamConstants.END_ELEMENT, null, ODataConstants.PROPERTIES); return properties; }
From source file:com.microsoft.windowsazure.services.table.client.AtomPubParser.java
/** * Reserved for internal use. Parses the operation response as an entity. Parses the result returned in the * specified stream in AtomPub format into a {@link TableResult} containing an entity of the specified class type * projected using the specified resolver. * /*w w w . j a v a 2 s . com*/ * @param xmlr * An <code>XMLStreamReader</code> on the input stream. * @param clazzType * The class type <code>T</code> implementing {@link TableEntity} for the entity returned. Set to * <code>null</code> to ignore the returned entity and copy only response properties into the * {@link TableResult} object. * @param resolver * An {@link EntityResolver} instance to project the entity into an instance of type <code>R</code>. Set * to <code>null</code> to return the entity as an instance of the class type <code>T</code>. * @param opContext * An {@link OperationContext} object used to track the execution of the operation. * @return * A {@link TableResult} containing the parsed entity result of the operation. * * @throws XMLStreamException * if an error occurs while accessing the stream. * @throws ParseException * if an error occurs while parsing the stream. * @throws InstantiationException * if an error occurs while constructing the result. * @throws IllegalAccessException * if an error occurs in reflection while parsing the result. * @throws StorageException * if a storage service error occurs. */ protected static <T extends TableEntity, R> TableResult parseEntity(final XMLStreamReader xmlr, final Class<T> clazzType, final EntityResolver<R> resolver, final OperationContext opContext) throws XMLStreamException, ParseException, InstantiationException, IllegalAccessException, StorageException { int eventType = xmlr.getEventType(); final TableResult res = new TableResult(); xmlr.require(XMLStreamConstants.START_ELEMENT, null, ODataConstants.ENTRY); res.setEtag(StringEscapeUtils.unescapeHtml4( xmlr.getAttributeValue(ODataConstants.DATA_SERVICES_METADATA_NS, ODataConstants.ETAG))); while (xmlr.hasNext()) { eventType = xmlr.next(); if (eventType == XMLStreamConstants.CHARACTERS) { xmlr.getText(); continue; } final String name = xmlr.getName().toString(); if (eventType == XMLStreamConstants.START_ELEMENT) { if (name.equals(ODataConstants.BRACKETED_ATOM_NS + ODataConstants.ID)) { res.setId(Utility.readElementFromXMLReader(xmlr, ODataConstants.ID)); } else if (name .equals(ODataConstants.BRACKETED_DATA_SERVICES_METADATA_NS + ODataConstants.PROPERTIES)) { // Do read properties if (resolver == null && clazzType == null) { return res; } else { res.setProperties(readProperties(xmlr, opContext)); break; } } } } // Move to end Content eventType = xmlr.next(); if (eventType == XMLStreamConstants.CHARACTERS) { eventType = xmlr.next(); } xmlr.require(XMLStreamConstants.END_ELEMENT, null, ODataConstants.CONTENT); eventType = xmlr.next(); if (eventType == XMLStreamConstants.CHARACTERS) { eventType = xmlr.next(); } xmlr.require(XMLStreamConstants.END_ELEMENT, null, ODataConstants.ENTRY); String rowKey = null; String partitionKey = null; Date timestamp = null; // Remove core properties from map and set individually EntityProperty tempProp = res.getProperties().get(TableConstants.PARTITION_KEY); if (tempProp != null) { res.getProperties().remove(TableConstants.PARTITION_KEY); partitionKey = tempProp.getValueAsString(); } tempProp = res.getProperties().get(TableConstants.ROW_KEY); if (tempProp != null) { res.getProperties().remove(TableConstants.ROW_KEY); rowKey = tempProp.getValueAsString(); } tempProp = res.getProperties().get(TableConstants.TIMESTAMP); if (tempProp != null) { res.getProperties().remove(TableConstants.TIMESTAMP); timestamp = tempProp.getValueAsDate(); } if (resolver != null) { // Call resolver res.setResult(resolver.resolve(partitionKey, rowKey, timestamp, res.getProperties(), res.getEtag())); } else if (clazzType != null) { // Generate new entity and return final T entity = clazzType.newInstance(); entity.setEtag(res.getEtag()); entity.setPartitionKey(partitionKey); entity.setRowKey(rowKey); entity.setTimestamp(timestamp); entity.readEntity(res.getProperties(), opContext); res.setResult(entity); } return res; }
From source file:Main.java
public boolean accept(XMLStreamReader reader) { return accept(reader.getEventType()); }
From source file:com.predic8.membrane.core.config.AbstractXmlElement.java
protected void move2RootElementIfNeeded(XMLStreamReader token) throws XMLStreamException { if (token.getEventType() == XMLStreamReader.START_DOCUMENT) { while (!token.isStartElement()) { token.next();//from w w w .ja v a 2 s. com } } }
From source file:de.huxhorn.sulky.plist.impl.PropertyListReader.java
public PropertyList read(XMLStreamReader reader) throws XMLStreamException { int type = reader.getEventType(); if (XMLStreamConstants.START_DOCUMENT == type) { do {// ww w .j a v a2 s . c o m reader.next(); type = reader.getEventType(); } while (XMLStreamConstants.START_ELEMENT != type); } PropertyList result = new PropertyList(); if (XMLStreamConstants.START_ELEMENT == type && PLIST_NODE.equals(reader.getLocalName())) { reader.nextTag(); type = reader.getEventType(); if (!(XMLStreamConstants.END_ELEMENT == type && PLIST_NODE.equals(reader.getLocalName()))) { result.setRoot(readValue(reader)); } reader.require(XMLStreamConstants.END_ELEMENT, null, PLIST_NODE); } return result; }
From source file:de.huxhorn.sulky.plist.impl.PropertyListReader.java
private Object readValue(XMLStreamReader reader) throws XMLStreamException { int type = reader.getEventType(); if (XMLStreamConstants.START_ELEMENT == type && TRUE_NODE.equals(reader.getLocalName())) { reader.nextTag();//from w ww . java 2 s . c o m reader.require(XMLStreamConstants.END_ELEMENT, null, TRUE_NODE); reader.nextTag(); return Boolean.TRUE; } if (XMLStreamConstants.START_ELEMENT == type && FALSE_NODE.equals(reader.getLocalName())) { reader.nextTag(); reader.require(XMLStreamConstants.END_ELEMENT, null, FALSE_NODE); reader.nextTag(); return Boolean.FALSE; } if (XMLStreamConstants.START_ELEMENT == type && REAL_NODE.equals(reader.getLocalName())) { String text = StaxUtilities.readSimpleTextNodeIfAvailable(reader, null, REAL_NODE); return Double.parseDouble(text); } if (XMLStreamConstants.START_ELEMENT == type && INTEGER_NODE.equals(reader.getLocalName())) { String text = StaxUtilities.readSimpleTextNodeIfAvailable(reader, null, INTEGER_NODE); return Long.parseLong(text); } if (XMLStreamConstants.START_ELEMENT == type && STRING_NODE.equals(reader.getLocalName())) { return StaxUtilities.readSimpleTextNodeIfAvailable(reader, null, STRING_NODE); } if (XMLStreamConstants.START_ELEMENT == type && DATA_NODE.equals(reader.getLocalName())) { return readData(reader); } if (XMLStreamConstants.START_ELEMENT == type && DATE_NODE.equals(reader.getLocalName())) { return readDate(reader); } if (XMLStreamConstants.START_ELEMENT == type && ARRAY_NODE.equals(reader.getLocalName())) { return readArray(reader); } if (XMLStreamConstants.START_ELEMENT == type && DICT_NODE.equals(reader.getLocalName())) { return readDict(reader); } throw new RuntimeException("Unexpected XML-Node: " + reader.getLocalName()); }
From source file:jodtemplate.pptx.io.xml.SlideXmlRelsReader.java
@Override public Slide read(final String path, final Resources resources, final XMLInputFactory xmlInputFactory, final Slide slide) throws XMLStreamException, IOException { final Resource slideXmlRelsRes = resources.getResource(Utils.removePrefixSeparator(path)); try (final InputStream is = slideXmlRelsRes.getInputStream()) { final XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(is); int event = xmlStreamReader.next(); while (event != XMLStreamConstants.END_DOCUMENT) { if (xmlStreamReader.getEventType() == XMLStreamConstants.START_ELEMENT) { final String elementNS = xmlStreamReader.getName().getNamespaceURI(); final String elementName = xmlStreamReader.getName().getLocalPart(); if (OOXMLDocument.RELATIONSHIP_ELEMENT.equals(elementName) && OOXMLDocument.RELATIONSHIPS_RELS_NAMESPACE.equals(elementNS)) { final Relationship relationship = createRelationshipElement(xmlStreamReader); slide.addOtherRelationship(relationship); }/*from w w w. j a va2 s. c o m*/ } event = xmlStreamReader.next(); } } return slide; }
From source file:jodtemplate.pptx.io.xml.PresentationXmlRelsReader.java
@Override public Presentation read(final String path, final Resources resources, final XMLInputFactory xmlInputFactory, final Presentation presentation) throws XMLStreamException, IOException { final Resource presentationXmlRelsRes = resources.getResource(Utils.removePrefixSeparator(path)); try (final InputStream is = presentationXmlRelsRes.getInputStream()) { final XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(is); int event = xmlStreamReader.next(); while (event != XMLStreamConstants.END_DOCUMENT) { if (xmlStreamReader.getEventType() == XMLStreamConstants.START_ELEMENT) { final String elementNS = xmlStreamReader.getName().getNamespaceURI(); final String elementName = xmlStreamReader.getName().getLocalPart(); if (OOXMLDocument.RELATIONSHIP_ELEMENT.equals(elementName) && OOXMLDocument.RELATIONSHIPS_RELS_NAMESPACE.equals(elementNS)) { final Relationship relationship = createRelationshipElement(xmlStreamReader); if (Relationship.SLIDE_TYPE.equals(relationship.getType())) { final Slide slide = new Slide(); slide.setRelationship(relationship); slide.setPresentation(presentation); presentation.addSlide(slide); } else { presentation.addOtherRelationship(relationship); }/*w ww . j a va2s .c o m*/ } } event = xmlStreamReader.next(); } } return presentation; }