public int next()

in src/main/java/org/apache/maven/xinclude/stax/XIncludeStreamReader.java [99:142]


    public int next() throws XMLStreamException {
        int event = super.next();
        if (event == START_ELEMENT) {
            contextStack.peek().depth++;
            String xmlLang = this.xmlLangs.peek();
            String xmlBase = firstElementInContext ? contextStack.peek().location : this.xmlBases.peek();
            firstElementInContext = false;
            for (int i = 0; i < getAttributeCount(); i++) {
                if ("xml".equals(getAttributePrefix(i))) {
                    switch (getAttributeLocalName(i)) {
                        case "lang":
                            xmlLang = getAttributeValue(i);
                            break;
                        case "base":
                            xmlBase = getAttributeValue(i);
                            break;
                    }
                }
            }
            this.xmlLangs.push(xmlLang != null ? xmlLang : "");
            this.xmlBases.push(xmlBase != null ? xmlBase : "");
            String namespace = getNamespaceURI();
            String localName = getLocalName();
            if (XINCLUDE_NAMESPACE.equals(namespace) && XINCLUDE_INCLUDE.equals(localName)) {
                processInclude();
                return next();
            }
        } else if (event == END_ELEMENT) {
            contextStack.peek().depth--;
            this.xmlBases.pop();
            this.xmlLangs.pop();
        } else if (event == END_DOCUMENT) {
            while (event == END_DOCUMENT) {
                if (contextStack.size() > 1) {
                    contextStack.pop();
                    event = next();
                } else {
                    break;
                }
            }
            firstElementInContext = false;
        }
        return event;
    }