diff options
author | 2018-07-16 14:40:26 -0700 | |
---|---|---|
committer | 2018-07-16 14:41:57 -0700 | |
commit | b7f42ab89a9c46902de867256ec23c11cb34fb11 (patch) | |
tree | e5eddd1bebccee06e752570f3cb937bf7fbededc /src/main/java/com/google/devtools/build/lib/rules/android/AndroidPreDexJarProvider.java | |
parent | 83ddf681a8c5814283cb0c1d470a4c532f32fae4 (diff) |
Expose AndroidPreDexJarProvider to Skylark as AndroidPreDexJarInfo.
RELNOTES: None
PiperOrigin-RevId: 204809750
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidPreDexJarProvider.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidPreDexJarProvider.java | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidPreDexJarProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidPreDexJarProvider.java index 56b0937b26..c987b3e914 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidPreDexJarProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidPreDexJarProvider.java @@ -11,24 +11,47 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // 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.AndroidPreDexJarProviderApi; +import com.google.devtools.build.lib.syntax.EvalException; /** A provider of the final Jar to be dexed for targets that build APKs. */ -@AutoValue @Immutable -public abstract class AndroidPreDexJarProvider implements TransitiveInfoProvider { +public final class AndroidPreDexJarProvider extends NativeInfo + implements AndroidPreDexJarProviderApi<Artifact> { + public static final String PROVIDER_NAME = "AndroidPreDexJarInfo"; + public static final Provider PROVIDER = new Provider(); - public static AndroidPreDexJarProvider create(Artifact preDexJar) { - return new AutoValue_AndroidPreDexJarProvider(preDexJar); - } + private final Artifact preDexJar; /** Returns the jar to be dexed. */ - public abstract Artifact getPreDexJar(); + @Override + public Artifact getPreDexJar() { + return preDexJar; + } - AndroidPreDexJarProvider() {} + public AndroidPreDexJarProvider(Artifact preDexJar) { + super(PROVIDER); + this.preDexJar = preDexJar; + } + + /** Provider class for {@link AndroidPreDexJarProvider} objects. */ + public static class Provider extends BuiltinProvider<AndroidPreDexJarProvider> + implements AndroidPreDexJarProviderApi.Provider<Artifact> { + private Provider() { + super(PROVIDER_NAME, AndroidPreDexJarProvider.class); + } + + @Override + public AndroidPreDexJarProviderApi<Artifact> createInfo(Artifact preDexJar) + throws EvalException { + return new AndroidPreDexJarProvider(preDexJar); + } + } } |