private void addTargetAsSource()

in java/src/com/google/idea/blaze/java/sync/importer/BlazeJavaWorkspaceImporter.java [252:335]


  private void addTargetAsSource(
      WorkspaceBuilder workspaceBuilder,
      TargetIdeInfo target,
      Collection<ArtifactLocation> javaSources) {
    JavaIdeInfo javaIdeInfo = target.getJavaIdeInfo();
    if (javaIdeInfo == null) {
      return;
    }

    TargetKey targetKey = target.getKey();
    Collection<String> jars = jdepsMap.getDependenciesForTarget(targetKey);
    if (jars != null) {
      workspaceBuilder.jdeps.addAll(jars);
    }

    // Add all deps if this target is in the current working set
    if (workingSet == null || workingSet.isTargetInWorkingSet(target)) {
      // Add self, so we pick up our own gen jars if in working set
      workspaceBuilder.directDeps.add(targetKey);
      for (Dependency dep : target.getDependencies()) {
        if (dep.getDependencyType() != DependencyType.COMPILE_TIME) {
          continue;
        }
        // forward deps from java proto_library aspect targets
        TargetIdeInfo depTarget = targetMap.get(dep.getTargetKey());
        if (depTarget != null
            && JavaBlazeRules.getJavaProtoLibraryKinds().contains(depTarget.getKind())) {
          workspaceBuilder.directDeps.addAll(
              depTarget.getDependencies().stream().map(Dependency::getTargetKey).collect(toList()));
        } else {
          workspaceBuilder.directDeps.add(dep.getTargetKey());
        }
      }
    }

    for (ArtifactLocation artifactLocation : javaSources) {
      if (artifactLocation.isSource()) {
        duplicateSourceDetector.add(targetKey, artifactLocation);
        workspaceBuilder.sourceArtifacts.add(new SourceArtifact(targetKey, artifactLocation));
        workspaceBuilder.addedSourceFiles.add(artifactLocation);
      }
    }

    ArtifactLocation manifest = javaIdeInfo.getPackageManifest();
    if (manifest != null) {
      workspaceBuilder.javaPackageManifests.put(targetKey, manifest);
    }
    for (LibraryArtifact libraryArtifact : javaIdeInfo.getJars()) {
      ArtifactLocation classJar = libraryArtifact.getClassJar();
      if (classJar != null) {
        workspaceBuilder.buildOutputJars.add(classJar);
      }
    }
    if (augmenters.stream().allMatch(argument -> argument.shouldAttachGenJar(target))) {
      workspaceBuilder.generatedJarsFromSourceTargets.addAll(
          javaIdeInfo.getGeneratedJars().stream()
              .map(jar -> new BlazeJarLibrary(jar, targetKey))
              .collect(toList()));
    }
    if (javaIdeInfo.getFilteredGenJar() != null) {
      workspaceBuilder.generatedJarsFromSourceTargets.add(
          new BlazeJarLibrary(javaIdeInfo.getFilteredGenJar(), targetKey));
    }
    if (JavaSourceFilter.isJavaProtoTarget(target)) {
      // add generated jars from all proto library targets in the project
      javaIdeInfo.getJars().stream()
          .map(jar -> new BlazeJarLibrary(jar, targetKey))
          .forEach(workspaceBuilder.generatedJarsFromSourceTargets::add);
    }

    for (BlazeJavaSyncAugmenter augmenter : augmenters) {
      augmenter.addJarsForSourceTarget(
          workspaceLanguageSettings,
          projectViewSet,
          target,
          workspaceBuilder.outputJarsFromSourceTargets.get(targetKey),
          workspaceBuilder.generatedJarsFromSourceTargets);
    }

    workspaceBuilder.pluginProcessorJars.addAll(
        javaIdeInfo.getPluginProcessorJars().stream()
            .map(jar -> new BlazeJarLibrary(jar, target.getKey()))
            .collect(toImmutableList()));
  }