aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidPreDexJarProvider.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2018-07-16 14:40:26 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-16 14:41:57 -0700
commitb7f42ab89a9c46902de867256ec23c11cb34fb11 (patch)
treee5eddd1bebccee06e752570f3cb937bf7fbededc /src/main/java/com/google/devtools/build/lib/rules/android/AndroidPreDexJarProvider.java
parent83ddf681a8c5814283cb0c1d470a4c532f32fae4 (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.java41
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);
+ }
+ }
}