public @Nullable List<@NlsSafe String> getDeclaredAnnotationProcessors() {
    Element compilerConfig = getCompilerConfig();
    if (compilerConfig == null) {
      return null;
    }

    List<String> result = new ArrayList<>();
    if (getProcMode() != MavenProject.ProcMode.NONE) {
      Element processors = compilerConfig.getChild("annotationProcessors");
      if (processors != null) {
        for (Element element : processors.getChildren("annotationProcessor")) {
          String processorClassName = element.getTextTrim();
          if (!processorClassName.isEmpty()) {
            result.add(processorClassName);
          }
        }
      }
    }
    else {
      MavenPlugin bscMavenPlugin = findPlugin("org.bsc.maven", "maven-processor-plugin");
      if (bscMavenPlugin != null) {
        Element bscCfg = bscMavenPlugin.getGoalConfiguration("process");
        if (bscCfg == null) {
          bscCfg = bscMavenPlugin.getConfigurationElement();
        }

        if (bscCfg != null) {
          Element bscProcessors = bscCfg.getChild("processors");
          if (bscProcessors != null) {
            for (Element element : bscProcessors.getChildren("processor")) {
              String processorClassName = element.getTextTrim();
              if (!processorClassName.isEmpty()) {
                result.add(processorClassName);
              }
            }
          }
        }
      }
    }

    return result;
  }
public @Nullable List<@NlsSafe String> getDeclaredAnnotationProcessors()