private static Set extractReferencedClasses()

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;
  }