aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/ProguardMappingProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/ProguardMappingProvider.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ProguardMappingProvider.java39
1 files changed, 31 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ProguardMappingProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/ProguardMappingProvider.java
index f767c40aac..f5dc285095 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ProguardMappingProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ProguardMappingProvider.java
@@ -13,21 +13,44 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.android;
-import com.google.auto.value.AutoValue;
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.packages.BuiltinProvider;
+import com.google.devtools.build.lib.packages.NativeInfo;
+import com.google.devtools.build.lib.skylarkbuildapi.android.ProguardMappingProviderApi;
+import com.google.devtools.build.lib.syntax.EvalException;
/** A target that can provide a proguard obfuscation mapping to Android binaries or tests. */
-@AutoValue
@Immutable
-public abstract class ProguardMappingProvider implements TransitiveInfoProvider {
+public final class ProguardMappingProvider extends NativeInfo
+ implements ProguardMappingProviderApi<Artifact> {
- public static ProguardMappingProvider create(Artifact proguardMapping) {
- return new AutoValue_ProguardMappingProvider(proguardMapping);
+ public static final String PROVIDER_NAME = "ProguardMappingInfo";
+ public static final Provider PROVIDER = new Provider();
+
+ private final Artifact proguardMapping;
+
+ public ProguardMappingProvider(Artifact proguardMapping) {
+ super(PROVIDER);
+ this.proguardMapping = proguardMapping;
+ }
+
+ @Override
+ public Artifact getProguardMapping() {
+ return proguardMapping;
}
- public abstract Artifact getProguardMapping();
+ /** The provider can construct the ProguardMappingProvider provider. */
+ public static class Provider extends BuiltinProvider<ProguardMappingProvider>
+ implements ProguardMappingProviderApi.Provider<Artifact> {
+
+ private Provider() {
+ super(PROVIDER_NAME, ProguardMappingProvider.class);
+ }
- ProguardMappingProvider() {}
+ @Override
+ public ProguardMappingProvider createInfo(Artifact proguardMapping) throws EvalException {
+ return new ProguardMappingProvider(proguardMapping);
+ }
+ }
}