public void require()

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 +"'.");
                }
            }
        }
    }