diff options
author | 2015-11-12 15:21:24 +0000 | |
---|---|---|
committer | 2015-11-13 10:18:19 +0000 | |
commit | bfae536431e6b689403703e5af465b074f04b340 (patch) | |
tree | c6c498ae9cb55888c42ce4cf478a271e95b6af07 /src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java | |
parent | 7ef96d778a0baf8c4e3a06bf50a4651e3e8bf1fe (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.java | 20 |
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; } |