in intellij-plugin-structure/structure-intellij/src/main/java/com/jetbrains/plugin/structure/intellij/plugin/PluginXmlUtil.java [19:46]
private static Set<String> extractReferencedClasses(@NotNull Element rootElement) {
Set<String> referencedClasses = new HashSet<>();
Iterator<Content> descendants = rootElement.getDescendants();
while (descendants.hasNext()) {
Content next = descendants.next();
if (next instanceof Element) {
Element element = (Element) next;
if (isClassLikeName(element.getName())) {
referencedClasses.addAll(extractClasses(element.getTextNormalize()));
}
for (Attribute attribute : element.getAttributes()) {
if (isClassLikeName(attribute.getName())) {
referencedClasses.addAll(extractClasses(attribute.getValue().trim()));
}
}
} else if (next instanceof Text) {
Parent parent = next.getParent();
if (parent instanceof Element) {
if (isClassLikeName(((Element) parent).getName())) {
referencedClasses.addAll(extractClasses(((Text) next).getTextTrim()));
}
}
}
}
return referencedClasses;
}