@Override public boolean hasText() { int eventType = getEventType(); return (eventType == XMLStreamConstants.SPACE || eventType == XMLStreamConstants.CHARACTERS || eventType == XMLStreamConstants.COMMENT || eventType == XMLStreamConstants.CDATA || eventType == XMLStreamConstants.ENTITY_REFERENCE); }
@Override public boolean hasName() { int eventType = getEventType(); return (eventType == XMLStreamConstants.START_ELEMENT || eventType == XMLStreamConstants.END_ELEMENT); }
@Override public boolean isWhiteSpace() { return getEventType() == XMLStreamConstants.SPACE; }
@Override public boolean isStartElement() { return getEventType() == XMLStreamConstants.START_ELEMENT; }
@Override public boolean isCharacters() { return getEventType() == XMLStreamConstants.CHARACTERS; }
@Override public boolean isEndElement() { return getEventType() == XMLStreamConstants.END_ELEMENT; }
@Override public boolean hasNext() { return getEventType() != END_DOCUMENT; }
@Override public void require(int expectedType, String namespaceURI, String localName) throws XMLStreamException { int eventType = getEventType(); if (eventType != expectedType) { throw new XMLStreamException("Expected [" + expectedType + "] but read [" + eventType + "]"); } }
@Override public boolean hasText() { int eventType = getEventType(); return (eventType == XMLStreamConstants.SPACE || eventType == XMLStreamConstants.CHARACTERS || eventType == XMLStreamConstants.COMMENT || eventType == XMLStreamConstants.CDATA || eventType == XMLStreamConstants.ENTITY_REFERENCE); }
@Override public boolean hasName() { int eventType = getEventType(); return (eventType == XMLStreamConstants.START_ELEMENT || eventType == XMLStreamConstants.END_ELEMENT); }
@Override public boolean isWhiteSpace() { return getEventType() == XMLStreamConstants.SPACE; }
@Override public boolean isEndElement() { return getEventType() == XMLStreamConstants.END_ELEMENT; }
@Override public boolean isStartElement() { return getEventType() == XMLStreamConstants.START_ELEMENT; }
@Override public boolean isCharacters() { return getEventType() == XMLStreamConstants.CHARACTERS; }
@Override public void require(int expectedType, String namespaceURI, String localName) throws XMLStreamException { int eventType = getEventType(); if (eventType != expectedType) { throw new XMLStreamException("Expected [" + expectedType + "] but read [" + eventType + "]"); } }
@Override public String getPrefix() { int eventType = getEventType(); if (eventType == XMLStreamConstants.START_ELEMENT || eventType == XMLStreamConstants.END_ELEMENT) { return getName().getPrefix(); } else { throw new IllegalStateException("Parser must be on START_ELEMENT or END_ELEMENT state"); } }
@Override public String getNamespaceURI() { int eventType = getEventType(); if (eventType == XMLStreamConstants.START_ELEMENT || eventType == XMLStreamConstants.END_ELEMENT) { return getName().getNamespaceURI(); } else { throw new IllegalStateException("Parser must be on START_ELEMENT or END_ELEMENT state"); } }
@Override public String getNamespaceURI() { int eventType = getEventType(); if (eventType == XMLStreamConstants.START_ELEMENT || eventType == XMLStreamConstants.END_ELEMENT) { return getName().getNamespaceURI(); } else { throw new IllegalStateException("Parser must be on START_ELEMENT or END_ELEMENT state"); } }
@Override public String getPrefix() { int eventType = getEventType(); if (eventType == XMLStreamConstants.START_ELEMENT || eventType == XMLStreamConstants.END_ELEMENT) { return getName().getPrefix(); } else { throw new IllegalStateException("Parser must be on START_ELEMENT or END_ELEMENT state"); } }
@Override public String getElementText() throws XMLStreamException { if (getEventType() != XMLStreamConstants.START_ELEMENT) { throw new XMLStreamException("Parser must be on START_ELEMENT to read next text", getLocation()); } int eventType = next(); StringBuilder builder = new StringBuilder(); while (eventType != XMLStreamConstants.END_ELEMENT) { if (eventType == XMLStreamConstants.CHARACTERS || eventType == XMLStreamConstants.CDATA || eventType == XMLStreamConstants.SPACE || eventType == XMLStreamConstants.ENTITY_REFERENCE) { builder.append(getText()); } else if (eventType == XMLStreamConstants.PROCESSING_INSTRUCTION || eventType == XMLStreamConstants.COMMENT) { // skipping } else if (eventType == XMLStreamConstants.END_DOCUMENT) { throw new XMLStreamException("Unexpected end of document when reading element text content", getLocation()); } else if (eventType == XMLStreamConstants.START_ELEMENT) { throw new XMLStreamException("Element text content may not contain START_ELEMENT", getLocation()); } else { throw new XMLStreamException("Unexpected event type " + eventType, getLocation()); } eventType = next(); } return builder.toString(); }