aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-02-26 10:31:12 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-26 10:32:57 -0800
commitc4eb5bc0b858b01f142ae3659ca0d656befd9e32 (patch)
tree94ac7ddc73bba125ce99b1bb3f815c9a00f02619 /src/main/java
parent888ea093e1972324cfc8720f25064baccbc20898 (diff)
@AutoCodec TransitiveJavaRuleOutputJarsProvider and JavaRuleOutputJarsProvider.
PiperOrigin-RevId: 187043046
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java
index 2f08800478..9f9fa089aa 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java
@@ -22,6 +22,7 @@ import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
@@ -36,6 +37,7 @@ import javax.annotation.Nullable;
category = SkylarkModuleCategory.NONE,
doc = "Information about outputs of a Java rule."
)
+@AutoCodec
public final class JavaRuleOutputJarsProvider implements TransitiveInfoProvider {
public static final JavaRuleOutputJarsProvider EMPTY =
@@ -49,6 +51,7 @@ public final class JavaRuleOutputJarsProvider implements TransitiveInfoProvider
doc = "Java classes jar, together with their associated source and interface archives."
)
@Immutable
+ @AutoCodec
public static class OutputJar {
@Nullable private final Artifact classJar;
@Nullable private final Artifact iJar;
@@ -128,6 +131,18 @@ public final class JavaRuleOutputJarsProvider implements TransitiveInfoProvider
this.nativeHeaders = nativeHeaders;
}
+ @AutoCodec.VisibleForSerialization
+ @AutoCodec.Instantiator
+ static JavaRuleOutputJarsProvider create(
+ ImmutableList<OutputJar> outputJars,
+ @Nullable Artifact jdeps,
+ @Nullable Artifact nativeHeaders) {
+ if (outputJars.isEmpty() && jdeps == null && nativeHeaders == null) {
+ return EMPTY;
+ }
+ return new JavaRuleOutputJarsProvider(outputJars, jdeps, nativeHeaders);
+ }
+
@SkylarkCallable(name = "jars", doc = "A list of jars the rule outputs.", structField = true)
public ImmutableList<OutputJar> getOutputJars() {
return outputJars;