private static JavaRuleIdeInfo makeJavaRuleIdeInfo( ConfiguredTarget base, RuleContext ruleContext, JavaRuleOutputJarsProvider outputJarsProvider, NestedSetBuilder<Artifact> ideResolveArtifacts, @Nullable Artifact packageManifest) { JavaRuleIdeInfo.Builder builder = JavaRuleIdeInfo.newBuilder(); collectJarsFromOutputJarsProvider(builder, ideResolveArtifacts, outputJarsProvider); Artifact jdeps = outputJarsProvider.getJdeps(); if (jdeps != null) { builder.setJdeps(makeArtifactLocation(jdeps)); } JavaGenJarsProvider genJarsProvider = base.getProvider(JavaGenJarsProvider.class); if (genJarsProvider != null) { collectGenJars(builder, ideResolveArtifacts, genJarsProvider); } Collection<Artifact> sourceFiles = getSources(ruleContext); for (Artifact sourceFile : sourceFiles) { builder.addSources(makeArtifactLocation(sourceFile)); } if (packageManifest != null) { builder.setPackageManifest(makeArtifactLocation(packageManifest)); } return builder.build(); }
private static void collectJarsFromOutputJarsProvider( JavaRuleIdeInfo.Builder builder, NestedSetBuilder<Artifact> ideResolveArtifacts, JavaRuleOutputJarsProvider outputJarsProvider) { for (OutputJar outputJar : outputJarsProvider.getOutputJars()) { LibraryArtifact libraryArtifact = makeLibraryArtifact( ideResolveArtifacts, outputJar.getClassJar(), outputJar.getIJar(), outputJar.getSrcJar()); if (libraryArtifact != null) { builder.addJars(libraryArtifact); } } }
private static void collectGenJars( JavaRuleIdeInfo.Builder builder, NestedSetBuilder<Artifact> ideResolveArtifacts, JavaGenJarsProvider genJarsProvider) { LibraryArtifact.Builder genjarsBuilder = LibraryArtifact.newBuilder(); if (genJarsProvider.usesAnnotationProcessing()) { Artifact genClassJar = genJarsProvider.getGenClassJar(); if (genClassJar != null) { genjarsBuilder.setJar(makeArtifactLocation(genClassJar)); addResolveArtifact(ideResolveArtifacts, genClassJar); } Artifact gensrcJar = genJarsProvider.getGenSourceJar(); if (gensrcJar != null) { genjarsBuilder.setSourceJar(makeArtifactLocation(gensrcJar)); addResolveArtifact(ideResolveArtifacts, gensrcJar); } if (genjarsBuilder.hasJar()) { builder.addGeneratedJars(genjarsBuilder.build()); } } }