org_eclipse_lemminx_extensions_contentmodel_AssociateGrammarCodeLensExtensionsTest_java
org.eclipse.lemminx.extensions.contentmodel.model.ContentModelManager
public Set<ReferencedGrammarInfo> getReferencedGrammarInfos(DOMDocument document) {
        LinkedHashSet<ReferencedGrammarInfo> referencedGrammarInfos = new LinkedHashSet<ReferencedGrammarInfo>();
        for (ContentModelProvider modelProvider : this.modelProviders) {
            if (!modelProvider.adaptFor(document, false)) continue;
            Collection<ContentModelProvider.Identifier> identifiers = modelProvider.getIdentifiers(document, null);
            for (ContentModelProvider.Identifier identifier : identifiers) {
                String publicId = identifier.getPublicId();
                String systemId = identifier.getSystemId();
                this.fillReferencedGrammarInfo(document, publicId, systemId, identifier, referencedGrammarInfos);
            }
        }
        this.fillReferencedGrammarInfo(document, document.getNamespaceURI(), null, null, referencedGrammarInfos);
        return referencedGrammarInfos;
    }
 -> java.util.List.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.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.List.isEmpty(): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.indexOf(java.lang.String): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.isEmpty(): 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 -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.isEmpty(): boolean -> java.lang.String.charAt(int): char -> java.util.List.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.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.nio.file.Path.resolve(java.nio.file.Path): java.nio.file.Path -> java.nio.file.Path.toFile(): java.io.File -> java.io.File.exists(): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.nio.file.Path.resolve(java.nio.file.Path): java.nio.file.Path -> java.nio.file.Path.toFile(): java.io.File -> java.io.File.exists(): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.nio.file.Path.resolve(java.nio.file.Path): java.nio.file.Path -> java.nio.file.Path.toFile(): java.io.File -> java.io.File.exists(): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.List.get(int): java.lang.Object -> java.nio.file.Path.resolve(java.nio.file.Path): java.nio.file.Path -> java.nio.file.Path.toFile(): java.io.File -> java.io.File.toURI(): java.net.URI -> java.net.URI.toString(): java.lang.String -> java.lang.String.isEmpty(): boolean -> java.util.Set.add(java.lang.Object): boolean
 [CALL] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.isEmpty(): boolean [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.lang.String.indexOf(java.lang.String): int -> java.lang.String.substring(int,int): java.lang.String [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.isEmpty(): boolean [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 [CALL] [CALL] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [EXIT] [EXIT] [EXIT] [CALL] [EXIT] -> java.lang.String.isEmpty(): boolean -> java.lang.String.charAt(int): char [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.util.List.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.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] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [CALL] [CALL] [EXIT] -> java.nio.file.Path.resolve(java.nio.file.Path): java.nio.file.Path [EXIT] [EXIT] -> java.nio.file.Path.toFile(): java.io.File -> java.io.File.exists(): boolean [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [CALL] [CALL] [EXIT] -> java.nio.file.Path.resolve(java.nio.file.Path): java.nio.file.Path [EXIT] [EXIT] -> java.nio.file.Path.toFile(): java.io.File -> java.io.File.exists(): boolean [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [CALL] [CALL] [EXIT] -> java.nio.file.Path.resolve(java.nio.file.Path): java.nio.file.Path [EXIT] [EXIT] -> java.nio.file.Path.toFile(): java.io.File -> java.io.File.exists(): boolean [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.List.get(int): java.lang.Object [CALL] [CALL] [CALL] [EXIT] -> java.nio.file.Path.resolve(java.nio.file.Path): java.nio.file.Path [EXIT] [EXIT] -> java.nio.file.Path.toFile(): java.io.File -> java.io.File.toURI(): java.net.URI -> java.net.URI.toString(): java.lang.String [EXIT] -> java.lang.String.isEmpty(): boolean [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Set.add(java.lang.Object): boolean [EXIT] [EXIT]