diff options
author | janakr <janakr@google.com> | 2018-02-26 10:39:31 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-26 10:41:25 -0800 |
commit | 3343b2acc6b17883ca77d95089dd814b0c6ef826 (patch) | |
tree | e4c359885597948c7ae70a775ac0b7b787d2b315 /src/main/java/com/google/devtools | |
parent | c4eb5bc0b858b01f142ae3659ca0d656befd9e32 (diff) |
@AutoCodec a bunch of providers.
PiperOrigin-RevId: 187044297
Diffstat (limited to 'src/main/java/com/google/devtools')
10 files changed, 40 insertions, 22 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java index 2de5e1e3ab..b009257108 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java @@ -19,6 +19,7 @@ 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.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; @@ -31,6 +32,7 @@ import javax.annotation.Nullable; category = SkylarkModuleCategory.NONE, doc = "Information about jars that are a result of annotation processing for a Java rule." ) +@AutoCodec public final class JavaGenJarsProvider implements TransitiveInfoProvider { private final boolean usesAnnotationProcessing; @@ -45,7 +47,7 @@ public final class JavaGenJarsProvider implements TransitiveInfoProvider { private final NestedSet<Artifact> transitiveGenClassJars; private final NestedSet<Artifact> transitiveGenSourceJars; - public JavaGenJarsProvider( + JavaGenJarsProvider( boolean usesAnnotationProcessing, @Nullable Artifact genClassJar, @Nullable Artifact genSourceJar, diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaNativeLibraryProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaNativeLibraryProvider.java index cd28afe9e6..5461e28059 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaNativeLibraryProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaNativeLibraryProvider.java @@ -19,12 +19,14 @@ 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; import com.google.devtools.build.lib.rules.cpp.LinkerInput; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; /** * A target that provides native libraries in the transitive closure of its deps that are needed for * executing Java code. */ @Immutable +@AutoCodec public final class JavaNativeLibraryProvider implements TransitiveInfoProvider { private final NestedSet<LinkerInput> transitiveJavaNativeLibraries; diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPrimaryClassProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPrimaryClassProvider.java index abb329fd7a..166dacb014 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPrimaryClassProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPrimaryClassProvider.java @@ -15,11 +15,11 @@ package com.google.devtools.build.lib.rules.java; 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; -/** - * Provides the fully qualified name of the primary class to invoke for java targets. - */ +/** Provides the fully qualified name of the primary class to invoke for java targets. */ @Immutable +@AutoCodec public final class JavaPrimaryClassProvider implements TransitiveInfoProvider { private final String primaryClass; diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeClasspathProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeClasspathProvider.java index d53256adcd..ddbaa7a6fc 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeClasspathProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeClasspathProvider.java @@ -18,17 +18,18 @@ 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.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; /** * Provider for the runtime classpath contributions of a Java binary. * - * Used to exclude already-available artifacts from related binaries - * (e.g. plugins). + * <p>Used to exclude already-available artifacts from related binaries (e.g. plugins). */ @Immutable @SkylarkModule(name = "JavaRuntimeClasspathProvider", doc = "") +@AutoCodec public final class JavaRuntimeClasspathProvider implements TransitiveInfoProvider { private final NestedSet<Artifact> runtimeClasspath; diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeJarProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeJarProvider.java index a8caf284eb..3033639934 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeJarProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeJarProvider.java @@ -17,6 +17,7 @@ import com.google.common.collect.ImmutableList; 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; /** * This {@link com.google.devtools.build.lib.analysis.TransitiveInfoProvider} contains the .jar @@ -31,6 +32,7 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; * enough because that contains only ijars) */ @Immutable +@AutoCodec public final class JavaRuntimeJarProvider implements TransitiveInfoProvider { private final ImmutableList<Artifact> runtimeJars; diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java index 74e20f7a42..70d2edf85d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java @@ -23,6 +23,7 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier; +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; @@ -41,6 +42,7 @@ import javax.annotation.Nullable; + "this struct, accessible as a <code>java</code> field on a " + "<a href=\"Target.html\">target</a>." ) +@AutoCodec public final class JavaSkylarkApiProvider extends SkylarkApiProvider { /** The name of the field in Skylark used to access this class. */ public static final String NAME = "java"; @@ -57,9 +59,8 @@ public final class JavaSkylarkApiProvider extends SkylarkApiProvider { return new JavaSkylarkApiProvider(null); } - /** - * Creates a Skylark API provider that reads information from an explicit provider map. - */ + /** Creates a Skylark API provider that reads information from an explicit provider map. */ + @AutoCodec.Instantiator public static JavaSkylarkApiProvider fromProviderMap( TransitiveInfoProviderMap transitiveInfoProviderMap) { return new JavaSkylarkApiProvider(transitiveInfoProviderMap); diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceInfoProvider.java index 872822bba4..f29e90e306 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceInfoProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceInfoProvider.java @@ -22,14 +22,15 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; 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.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization; import com.google.devtools.build.lib.vfs.PathFragment; import java.util.Collection; import java.util.Map; -/** - * A Provider describing the java sources directly belonging to a java rule. - */ +/** A Provider describing the java sources directly belonging to a java rule. */ @Immutable +@AutoCodec public final class JavaSourceInfoProvider implements TransitiveInfoProvider { private final Collection<Artifact> sourceFiles; private final Collection<Artifact> sourceJars; @@ -39,7 +40,8 @@ public final class JavaSourceInfoProvider implements TransitiveInfoProvider { private final Collection<String> processorNames; private final NestedSet<Artifact> processorPath; - private JavaSourceInfoProvider( + @VisibleForSerialization + JavaSourceInfoProvider( Collection<Artifact> sourceFiles, Collection<Artifact> sourceJars, Collection<Artifact> jarFiles, diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java index c4620cb0b4..a3962818ff 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java @@ -27,11 +27,14 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.packages.RuleErrorConsumer; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization; import java.util.List; import javax.annotation.Nullable; /** Information about the JDK used by the <code>java_*</code> rules. */ @Immutable +@AutoCodec public class JavaToolchainProvider extends ToolchainInfo { /** Returns the Java Toolchain associated with the rule being analyzed or {@code null}. */ @@ -133,7 +136,8 @@ public class JavaToolchainProvider extends ToolchainInfo { private final ImmutableList<JavaPackageConfigurationProvider> packageConfiguration; private final JavaSemantics javaSemantics; - private JavaToolchainProvider( + @VisibleForSerialization + JavaToolchainProvider( Label label, NestedSet<Artifact> bootclasspath, NestedSet<Artifact> extclasspath, diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java index 25bcc94278..0d9347227b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java @@ -16,18 +16,22 @@ package com.google.devtools.build.lib.rules.java; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.skylark.SkylarkApiProvider; +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 java.util.Iterator; /** - * A class that exposes the java_toolchain providers to Skylark. It is intended to provide a - * simple and stable interface for Skylark users. + * A class that exposes the java_toolchain providers to Skylark. It is intended to provide a simple + * and stable interface for Skylark users. */ @SkylarkModule( - name = "JavaToolchainSkylarkApiProvider", - doc = "Provides access to information about the Java toolchain rule. " - + "Accessible as a 'java_toolchain' field on a Target struct.") + name = "JavaToolchainSkylarkApiProvider", + doc = + "Provides access to information about the Java toolchain rule. " + + "Accessible as a 'java_toolchain' field on a Target struct." +) +@AutoCodec public final class JavaToolchainSkylarkApiProvider extends SkylarkApiProvider { /** The name of the field in Skylark used to access this class. */ public static final String NAME = "java_toolchain"; diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java index 0a360b1b19..0db1e3371e 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java @@ -18,11 +18,11 @@ 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; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; -/** - * A target that can provide proguard specifications to Android binaries. - */ +/** A target that can provide proguard specifications to Android binaries. */ @Immutable +@AutoCodec public final class ProguardSpecProvider implements TransitiveInfoProvider { private final NestedSet<Artifact> transitiveProguardSpecs; |