in axiom-compat/src/main/java/org/apache/axiom/util/stax/AbstractXMLStreamReader.java [123:162]
public void require(int type, String uri, String localName) throws XMLStreamException {
int actualType = getEventType();
if (type != actualType) {
throw new XMLStreamException("Required type " + XMLEventUtils.getEventTypeString(type)
+ ", actual type " + XMLEventUtils.getEventTypeString(actualType));
}
if (localName != null) {
if (actualType != START_ELEMENT && actualType != END_ELEMENT
&& actualType != ENTITY_REFERENCE) {
throw new XMLStreamException("Required a non-null local name, but current token " +
"not a START_ELEMENT, END_ELEMENT or ENTITY_REFERENCE (was " +
XMLEventUtils.getEventTypeString(actualType) + ")");
}
String actualLocalName = getLocalName();
if (actualLocalName != localName && !actualLocalName.equals(localName)) {
throw new XMLStreamException("Required local name '" + localName +
"'; current local name '" + actualLocalName + "'.");
}
}
if (uri != null) {
if (actualType != START_ELEMENT && actualType != END_ELEMENT) {
throw new XMLStreamException("Required non-null namespace URI, but current token " +
"not a START_ELEMENT or END_ELEMENT (was " +
XMLEventUtils.getEventTypeString(actualType) + ")");
}
String actualUri = getNamespaceURI();
if (uri.length() == 0) {
if (actualUri != null && actualUri.length() > 0) {
throw new XMLStreamException("Required empty namespace, instead have '" + actualUri + "'.");
}
} else {
if (!uri.equals(actualUri)) {
throw new XMLStreamException("Required namespace '" + uri + "'; have '" + actualUri +"'.");
}
}
}
}