org_eclipse_lemminx_extensions_contentmodel_XMLModelCompletionExtensionsTest_java
org.eclipse.lemminx.extensions.contentmodel.utils.XMLGenerator
private int generate(Collection<CMAttributeDeclaration> attributes, int level, int snippetIndex, XMLBuilder xml, String tagName) {
        ArrayList<CMAttributeDeclaration> requiredAttributes = new ArrayList<CMAttributeDeclaration>();
        for (CMAttributeDeclaration att : attributes) {
            if (!att.isRequired()) continue;
            requiredAttributes.add(att);
        }
        int attributesSize = requiredAttributes.size();
        for (CMAttributeDeclaration attributeDeclaration : requiredAttributes) {
            if (this.canSupportSnippets) {
                ++snippetIndex;
            }
            String defaultValue = attributeDeclaration.getDefaultValue();
            Collection<String> enumerationValues = attributeDeclaration.getEnumerationValues();
            String value = XMLGenerator.generateAttributeValue(defaultValue, enumerationValues, this.canSupportSnippets, snippetIndex, false, this.sharedSettings);
            if (attributesSize != 1) {
                xml.addAttribute(attributeDeclaration.getName(), value, level, true);
                continue;
            }
            xml.addSingleAttribute(attributeDeclaration.getName(), value, true);
        }
        return snippetIndex;
    }
 -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.List.add(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.List.add(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.List.size(): int -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Collections.emptyList(): java.util.List -> java.lang.Character.toString(char): java.lang.String -> java.util.Collection.isEmpty(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.Boolean.booleanValue(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.valueOf(char): java.lang.Character -> java.lang.Character.charValue(): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.Character.charValue(): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Collections.emptyList(): java.util.List -> java.lang.Character.toString(char): java.lang.String -> java.util.Collection.isEmpty(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.Boolean.booleanValue(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.valueOf(char): java.lang.Character -> java.lang.Character.charValue(): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.Character.charValue(): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean
 [CALL] -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.List.size(): int -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Collections.emptyList(): java.util.List [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.lang.Character.toString(char): java.lang.String [EXIT] -> java.util.Collection.isEmpty(): boolean [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(int): java.lang.StringBuilder [EXIT] -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] -> java.lang.Boolean.booleanValue(): boolean [EXIT] [EXIT] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] [EXIT] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] -> java.lang.String.length(): int -> java.lang.String.charAt(int): char [EXIT] -> java.lang.Character.valueOf(char): java.lang.Character [CALL] -> java.lang.Character.charValue(): char [CALL] -> java.lang.StringBuilder.append(char): java.lang.StringBuilder [EXIT] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] -> java.lang.Character.charValue(): char [CALL] -> java.lang.StringBuilder.append(char): java.lang.StringBuilder [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Collections.emptyList(): java.util.List [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.lang.Character.toString(char): java.lang.String [EXIT] -> java.util.Collection.isEmpty(): boolean [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(int): java.lang.StringBuilder [EXIT] -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] -> java.lang.Boolean.booleanValue(): boolean [EXIT] [EXIT] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] [EXIT] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] -> java.lang.String.length(): int -> java.lang.String.charAt(int): char [EXIT] -> java.lang.Character.valueOf(char): java.lang.Character [CALL] -> java.lang.Character.charValue(): char [CALL] -> java.lang.StringBuilder.append(char): java.lang.StringBuilder [EXIT] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] -> java.lang.Character.charValue(): char [CALL] -> java.lang.StringBuilder.append(char): java.lang.StringBuilder [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT]