diff options
author | janakr <janakr@google.com> | 2018-02-26 10:31:12 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-26 10:32:57 -0800 |
commit | c4eb5bc0b858b01f142ae3659ca0d656befd9e32 (patch) | |
tree | 94ac7ddc73bba125ce99b1bb3f815c9a00f02619 /src/main/java/com/google/devtools | |
parent | 888ea093e1972324cfc8720f25064baccbc20898 (diff) |
@AutoCodec TransitiveJavaRuleOutputJarsProvider and JavaRuleOutputJarsProvider.
PiperOrigin-RevId: 187043046
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java | 15 |
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; |