aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2015-11-12 15:21:24 +0000
committerGravatar Lukacs Berki <lberki@google.com>2015-11-13 10:18:19 +0000
commitbfae536431e6b689403703e5af465b074f04b340 (patch)
treec6c498ae9cb55888c42ce4cf478a271e95b6af07 /src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java
parent7ef96d778a0baf8c4e3a06bf50a4651e3e8bf1fe (diff)
Support exports attribute for android_library
RELNOTES: Support exports attribute for android_library -- MOS_MIGRATED_REVID=107681545
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java
index 3b88b03261..59c7a08fc4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java
@@ -14,10 +14,11 @@
package com.google.devtools.build.lib.rules.java;
-import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
+import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
/**
@@ -26,10 +27,21 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
@Immutable
public final class JavaPluginInfoProvider implements TransitiveInfoProvider {
- private final ImmutableList<String> processorClasses;
+ public static JavaPluginInfoProvider merge(Iterable<JavaPluginInfoProvider> providers) {
+ ImmutableSet.Builder<String> processorClasses = ImmutableSet.builder();
+ NestedSetBuilder<Artifact> processorClasspath = NestedSetBuilder.naiveLinkOrder();
+
+ for (JavaPluginInfoProvider provider : providers) {
+ processorClasses.addAll(provider.getProcessorClasses());
+ processorClasspath.addTransitive(provider.getProcessorClasspath());
+ }
+ return new JavaPluginInfoProvider(processorClasses.build(), processorClasspath.build());
+ }
+
+ private final ImmutableSet<String> processorClasses;
private final NestedSet<Artifact> processorClasspath;
- public JavaPluginInfoProvider(ImmutableList<String> processorClasses,
+ public JavaPluginInfoProvider(ImmutableSet<String> processorClasses,
NestedSet<Artifact> processorClasspath) {
this.processorClasses = processorClasses;
this.processorClasspath = processorClasspath;
@@ -39,7 +51,7 @@ public final class JavaPluginInfoProvider implements TransitiveInfoProvider {
* Returns the class that should be passed to javac in order
* to run the annotation processor this class represents.
*/
- public ImmutableList<String> getProcessorClasses() {
+ public ImmutableSet<String> getProcessorClasses() {
return processorClasses;
}