org_eclipse_lemminx_extensions_contentmodel_XMLFileAssociationsCompletionTest_java
org.apache.xerces.impl.xs.traversers.XSDElementTraverser
XSElementDecl traverseNamedElement(Element element, Object[] objectArray, XSDocumentInfo xSDocumentInfo, SchemaGrammar schemaGrammar, boolean bl, XSObject xSObject) {
        String string;
        Object object;
        Boolean bl2 = (Boolean)objectArray[XSAttributeChecker.ATTIDX_ABSTRACT];
        XInt xInt = (XInt)objectArray[XSAttributeChecker.ATTIDX_BLOCK];
        String string2 = (String)objectArray[XSAttributeChecker.ATTIDX_DEFAULT];
        XInt xInt2 = (XInt)objectArray[XSAttributeChecker.ATTIDX_FINAL];
        String string3 = (String)objectArray[XSAttributeChecker.ATTIDX_FIXED];
        XInt xInt3 = (XInt)objectArray[XSAttributeChecker.ATTIDX_FORM];
        String string4 = (String)objectArray[XSAttributeChecker.ATTIDX_NAME];
        Boolean bl3 = (Boolean)objectArray[XSAttributeChecker.ATTIDX_NILLABLE];
        QName qName = (QName)objectArray[XSAttributeChecker.ATTIDX_SUBSGROUP];
        QName qName2 = (QName)objectArray[XSAttributeChecker.ATTIDX_TYPE];
        XSElementDecl xSElementDecl = null;
        xSElementDecl = this.fSchemaHandler.fDeclPool != null ? this.fSchemaHandler.fDeclPool.getElementDecl() : new XSElementDecl();
        if (string4 != null) {
            xSElementDecl.fName = this.fSymbolTable.addSymbol(string4);
        }
        if (bl) {
            xSElementDecl.fTargetNamespace = xSDocumentInfo.fTargetNamespace;
            xSElementDecl.setIsGlobal();
        } else {
            if (xSObject instanceof XSComplexTypeDecl) {
                xSElementDecl.setIsLocal((XSComplexTypeDecl)xSObject);
            }
            xSElementDecl.fTargetNamespace = xInt3 != null ? (xInt3.intValue() == 1 ? xSDocumentInfo.fTargetNamespace : null) : (xSDocumentInfo.fAreLocalElementsQualified ? xSDocumentInfo.fTargetNamespace : null);
        }
        xSElementDecl.fBlock = xInt == null ? xSDocumentInfo.fBlockDefault : xInt.shortValue();
        xSElementDecl.fFinal = xInt2 == null ? xSDocumentInfo.fFinalDefault : xInt2.shortValue();
        xSElementDecl.fBlock = (short)(xSElementDecl.fBlock & 7);
        xSElementDecl.fFinal = (short)(xSElementDecl.fFinal & 3);
        if (bl3.booleanValue()) {
            xSElementDecl.setIsNillable();
        }
        if (bl2 != null && bl2.booleanValue()) {
            xSElementDecl.setIsAbstract();
        }
        if (string3 != null) {
            xSElementDecl.fDefault = new ValidatedInfo();
            xSElementDecl.fDefault.normalizedValue = string3;
            xSElementDecl.setConstraintType((short)2);
        } else if (string2 != null) {
            xSElementDecl.fDefault = new ValidatedInfo();
            xSElementDecl.fDefault.normalizedValue = string2;
            xSElementDecl.setConstraintType((short)1);
        } else {
            xSElementDecl.setConstraintType((short)0);
        }
        if (qName != null) {
            xSElementDecl.fSubGroup = (XSElementDecl)this.fSchemaHandler.getGlobalDecl(xSDocumentInfo, 3, qName, element);
        }
        Element element2 = DOMUtil.getFirstChildElement(element);
        XSAnnotationImpl xSAnnotationImpl = null;
        if (element2 != null && DOMUtil.getLocalName(element2).equals(SchemaSymbols.ELT_ANNOTATION)) {
            xSAnnotationImpl = this.traverseAnnotationDecl(element2, objectArray, false, xSDocumentInfo);
            element2 = DOMUtil.getNextSiblingElement(element2);
        } else {
            object = DOMUtil.getSyntheticAnnotation(element);
            if (object != null) {
                xSAnnotationImpl = this.traverseSyntheticAnnotation(element, (String)object, objectArray, false, xSDocumentInfo);
            }
        }
        if (xSAnnotationImpl != null) {
            object = new XSObjectListImpl();
            ((XSObjectListImpl)object).addXSObject(xSAnnotationImpl);
        } else {
            object = XSObjectListImpl.EMPTY_LIST;
        }
        xSElementDecl.fAnnotations = object;
        XSTypeDefinition xSTypeDefinition = null;
        boolean bl4 = false;
        if (element2 != null) {
            string = DOMUtil.getLocalName(element2);
            if (string.equals(SchemaSymbols.ELT_COMPLEXTYPE)) {
                xSTypeDefinition = this.fSchemaHandler.fComplexTypeTraverser.traverseLocal(element2, xSDocumentInfo, schemaGrammar);
                bl4 = true;
                element2 = DOMUtil.getNextSiblingElement(element2);
            } else if (string.equals(SchemaSymbols.ELT_SIMPLETYPE)) {
                xSTypeDefinition = this.fSchemaHandler.fSimpleTypeTraverser.traverseLocal(element2, xSDocumentInfo, schemaGrammar);
                bl4 = true;
                element2 = DOMUtil.getNextSiblingElement(element2);
            }
        }
        if (xSTypeDefinition == null && qName2 != null && (xSTypeDefinition = (XSTypeDefinition)this.fSchemaHandler.getGlobalDecl(xSDocumentInfo, 7, qName2, element)) == null) {
            xSElementDecl.fUnresolvedTypeName = qName2;
        }
        if (xSTypeDefinition == null && xSElementDecl.fSubGroup != null) {
            xSTypeDefinition = xSElementDecl.fSubGroup.fType;
        }
        if (xSTypeDefinition == null) {
            xSTypeDefinition = SchemaGrammar.fAnyType;
        }
        xSElementDecl.fType = xSTypeDefinition;
        if (element2 != null) {
            string = DOMUtil.getLocalName(element2);
            while (element2 != null && (string.equals(SchemaSymbols.ELT_KEY) || string.equals(SchemaSymbols.ELT_KEYREF) || string.equals(SchemaSymbols.ELT_UNIQUE))) {
                if (string.equals(SchemaSymbols.ELT_KEY) || string.equals(SchemaSymbols.ELT_UNIQUE)) {
                    DOMUtil.setHidden(element2, this.fSchemaHandler.fHiddenNodes);
                    this.fSchemaHandler.fUniqueOrKeyTraverser.traverse(element2, xSElementDecl, xSDocumentInfo, schemaGrammar);
                    if (DOMUtil.getAttrValue(element2, SchemaSymbols.ATT_NAME).length() != 0) {
                        this.fSchemaHandler.checkForDuplicateNames(xSDocumentInfo.fTargetNamespace == null ? "," + DOMUtil.getAttrValue(element2, SchemaSymbols.ATT_NAME) : xSDocumentInfo.fTargetNamespace + "," + DOMUtil.getAttrValue(element2, SchemaSymbols.ATT_NAME), 1, this.fSchemaHandler.getIDRegistry(), this.fSchemaHandler.getIDRegistry_sub(), element2, xSDocumentInfo);
                    }
                } else if (string.equals(SchemaSymbols.ELT_KEYREF)) {
                    this.fSchemaHandler.storeKeyRef(element2, xSDocumentInfo, xSElementDecl);
                }
                if ((element2 = DOMUtil.getNextSiblingElement(element2)) == null) continue;
                string = DOMUtil.getLocalName(element2);
            }
        }
        if (string4 == null) {
            if (bl) {
                this.reportSchemaError("s4s-att-must-appear", new Object[]{SchemaSymbols.ELT_ELEMENT, SchemaSymbols.ATT_NAME}, element);
            } else {
                this.reportSchemaError("src-element.2.1", null, element);
            }
            string4 = "(no name)";
        }
        if (element2 != null) {
            this.reportSchemaError("s4s-elt-must-match.1", new Object[]{string4, "(annotation?, (simpleType | complexType)?, (unique | key | keyref)*))", DOMUtil.getLocalName(element2)}, element2);
        }
        if (string2 != null && string3 != null) {
            this.reportSchemaError("src-element.1", new Object[]{string4}, element);
        }
        if (bl4 && qName2 != null) {
            this.reportSchemaError("src-element.3", new Object[]{string4}, element);
        }
        this.checkNotationType(string4, xSTypeDefinition, element);
        if (xSElementDecl.fDefault != null) {
            this.fValidationState.setNamespaceSupport(xSDocumentInfo.fNamespaceSupport);
            if (XSConstraints.ElementDefaultValidImmediate(xSElementDecl.fType, xSElementDecl.fDefault.normalizedValue, this.fValidationState, xSElementDecl.fDefault) == null) {
                this.reportSchemaError("e-props-correct.2", new Object[]{string4, xSElementDecl.fDefault.normalizedValue}, element);
                xSElementDecl.fDefault = null;
                xSElementDecl.setConstraintType((short)0);
            }
        }
        if (xSElementDecl.fSubGroup != null && !XSConstraints.checkTypeDerivationOk(xSElementDecl.fType, xSElementDecl.fSubGroup.fType, xSElementDecl.fSubGroup.fFinal)) {
            this.reportSchemaError("e-props-correct.4", new Object[]{string4, qName.prefix + ":" + qName.localpart}, element);
            xSElementDecl.fSubGroup = null;
        }
        if (xSElementDecl.fDefault != null && (xSTypeDefinition.getTypeCategory() == 16 && ((XSSimpleType)xSTypeDefinition).isIDType() || xSTypeDefinition.getTypeCategory() == 15 && ((XSComplexTypeDecl)xSTypeDefinition).containsTypeID())) {
            this.reportSchemaError("e-props-correct.5", new Object[]{xSElementDecl.fName}, element);
            xSElementDecl.fDefault = null;
            xSElementDecl.setConstraintType((short)0);
        }
        if (xSElementDecl.fName == null) {
            return null;
        }
        if (bl) {
            XSElementDecl xSElementDecl2;
            schemaGrammar.addGlobalElementDeclAll(xSElementDecl);
            if (schemaGrammar.getGlobalElementDecl(xSElementDecl.fName) == null) {
                schemaGrammar.addGlobalElementDecl(xSElementDecl);
            }
            if ((xSElementDecl2 = schemaGrammar.getGlobalElementDecl(xSElementDecl.fName, string = this.fSchemaHandler.schemaDocument2SystemId(xSDocumentInfo))) == null) {
                schemaGrammar.addGlobalElementDecl(xSElementDecl, string);
            }
            if (this.fSchemaHandler.fTolerateDuplicates) {
                if (xSElementDecl2 != null) {
                    xSElementDecl = xSElementDecl2;
                }
                this.fSchemaHandler.addGlobalElementDecl(xSElementDecl);
            }
        }
        return xSElementDecl;
    }
 -> java.lang.String.hashCode(): int -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.Boolean.booleanValue(): boolean -> java.util.Vector.contains(java.lang.Object): boolean -> java.lang.Object.hashCode(): int -> java.lang.Object.equals(java.lang.Object): boolean -> java.lang.Object.equals(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String
 [CALL] [CALL] [EXIT] [CALL] [CALL] -> java.lang.String.hashCode(): int [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [EXIT] [CALL] [EXIT] -> java.lang.Boolean.booleanValue(): boolean [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] -> java.util.Vector.contains(java.lang.Object): boolean [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.lang.Object.hashCode(): int [EXIT] [CALL] -> java.lang.Object.equals(java.lang.Object): boolean -> java.lang.Object.equals(java.lang.Object): boolean [EXIT] [EXIT] [EXIT] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT]