public @NotNull @NlsSafe String getAnnotationProcessorDirectory(boolean testSources) {
    if (getProcMode() == ProcMode.NONE) {
      MavenPlugin bscMavenPlugin = findPlugin("org.bsc.maven", "maven-processor-plugin");
      Element cfg = getPluginGoalConfiguration(bscMavenPlugin, testSources ? "process-test" : "process");
      if (bscMavenPlugin != null && cfg == null) {
        return getBuildDirectory() + (testSources ? "/generated-sources/apt-test" : "/generated-sources/apt");
      }
      if (cfg != null) {
        String out = MavenJDOMUtil.findChildValueByPath(cfg, "outputDirectory");
        if (out == null) {
          out = MavenJDOMUtil.findChildValueByPath(cfg, "defaultOutputDirectory");
          if (out == null) {
            return getBuildDirectory() + (testSources ? "/generated-sources/apt-test" : "/generated-sources/apt");
          }
        }

        if (!new File(out).isAbsolute()) {
          out = getDirectory() + '/' + out;
        }

        return out;
      }
    }

    String def = getGeneratedSourcesDirectory(testSources) + (testSources ? "/test-annotations" : "/annotations");
    return MavenJDOMUtil.findChildValueByPath(
      getCompilerConfig(), testSources ? "generatedTestSourcesDirectory" : "generatedSourcesDirectory", def);
  }
public @NotNull @NlsSafe String getAnnotationProcessorDirectory(boolean testSources)