diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceBrokerInfo.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceBrokerInfo.java | 50 |
1 files changed, 24 insertions, 26 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceBrokerInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceBrokerInfo.java index ac8c3c9714..8e0d0896ba 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceBrokerInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceBrokerInfo.java @@ -13,15 +13,11 @@ // limitations under the License. package com.google.devtools.build.lib.rules.android; -import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -import com.google.devtools.build.lib.events.Location; +import com.google.devtools.build.lib.packages.BuiltinProvider; import com.google.devtools.build.lib.packages.NativeInfo; -import com.google.devtools.build.lib.packages.NativeProvider; import com.google.devtools.build.lib.skylarkbuildapi.android.AndroidDeviceBrokerInfoApi; -import com.google.devtools.build.lib.syntax.Environment; -import com.google.devtools.build.lib.syntax.FunctionSignature; -import com.google.devtools.build.lib.syntax.SkylarkType; +import com.google.devtools.build.lib.syntax.EvalException; /** Supplies the device broker type string, passed to the Android test runtime. */ @Immutable @@ -29,26 +25,12 @@ public final class AndroidDeviceBrokerInfo extends NativeInfo implements AndroidDeviceBrokerInfoApi { private static final String SKYLARK_NAME = "AndroidDeviceBrokerInfo"; - private static final FunctionSignature.WithValues<Object, SkylarkType> SIGNATURE = - FunctionSignature.WithValues.create( - FunctionSignature.of( - /*numMandatoryPositionals=*/ 0, - /*numOptionalPositionals=*/ 0, - /*numMandatoryNamedOnly=*/ 1, - /*starArg=*/ false, - /*kwArg=*/ false, - "type"), - /*defaultValues=*/ null, - /*types=*/ ImmutableList.of(SkylarkType.of(String.class))); // instrumentation_apk - public static final NativeProvider<AndroidDeviceBrokerInfo> PROVIDER = - new NativeProvider<AndroidDeviceBrokerInfo>( - AndroidDeviceBrokerInfo.class, SKYLARK_NAME, SIGNATURE) { - @Override - protected AndroidDeviceBrokerInfo createInstanceFromSkylark( - Object[] args, Environment env, Location loc) { - return new AndroidDeviceBrokerInfo(/*deviceBrokerType=*/ (String) args[0]); - } - }; + + /** + * Provider instance for {@link AndroidDeviceBrokerInfo}. + */ + public static final AndroidDeviceBrokerInfoProvider PROVIDER = + new AndroidDeviceBrokerInfoProvider(); private final String deviceBrokerType; @@ -64,4 +46,20 @@ public final class AndroidDeviceBrokerInfo extends NativeInfo public String getDeviceBrokerType() { return deviceBrokerType; } + + /** Provider for {@link AndroidDeviceBrokerInfo}. */ + public static class AndroidDeviceBrokerInfoProvider + extends BuiltinProvider<AndroidDeviceBrokerInfo> + implements AndroidDeviceBrokerInfoApiProvider { + + private AndroidDeviceBrokerInfoProvider() { + super(SKYLARK_NAME, AndroidDeviceBrokerInfo.class); + } + + @Override + public AndroidDeviceBrokerInfo createInfo(String type) + throws EvalException { + return new AndroidDeviceBrokerInfo(type); + } + } } |