Add the missing sdk toolchain type attribute to `android_tools_defaults_jar`.

PiperOrigin-RevId: 563816464
Change-Id: I3316a20462f8ac16cb4dcc95e8768405ea8a4be8
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
index bae621a..d40417e 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -47,7 +47,7 @@
 import com.google.devtools.build.lib.bazel.rules.android.BazelAndroidLocalTestRule;
 import com.google.devtools.build.lib.bazel.rules.android.BazelAndroidSdkRule;
 import com.google.devtools.build.lib.bazel.rules.android.BazelAndroidSemantics;
-import com.google.devtools.build.lib.bazel.rules.android.BazelAndroidToolsDefaultsJar;
+import com.google.devtools.build.lib.bazel.rules.android.BazelAndroidToolsDefaultsJarRule;
 import com.google.devtools.build.lib.bazel.rules.android.BazelDexArchiveAspect;
 import com.google.devtools.build.lib.bazel.rules.android.BazelSdkToolchainRule;
 import com.google.devtools.build.lib.bazel.rules.java.proto.BazelJavaLiteProtoLibraryRule;
@@ -93,7 +93,7 @@
 import com.google.devtools.build.lib.rules.android.AndroidProguardInfo;
 import com.google.devtools.build.lib.rules.android.AndroidResourcesInfo;
 import com.google.devtools.build.lib.rules.android.AndroidRuleClasses;
-import com.google.devtools.build.lib.rules.android.AndroidRuleClasses.AndroidToolsDefaultsJarRule;
+import com.google.devtools.build.lib.rules.android.AndroidRuleClasses.AndroidBaseToolsDefaultsJarRule;
 import com.google.devtools.build.lib.rules.android.AndroidSdkBaseRule;
 import com.google.devtools.build.lib.rules.android.AndroidSdkProvider;
 import com.google.devtools.build.lib.rules.android.AndroidStarlarkCommon;
@@ -388,8 +388,8 @@
 
           builder.addRuleDefinition(new AndroidSdkBaseRule());
           builder.addRuleDefinition(new BazelAndroidSdkRule());
-          builder.addRuleDefinition(
-              new AndroidToolsDefaultsJarRule(BazelAndroidToolsDefaultsJar.class));
+          builder.addRuleDefinition(new AndroidBaseToolsDefaultsJarRule());
+          builder.addRuleDefinition(new BazelAndroidToolsDefaultsJarRule());
           builder.addRuleDefinition(new AndroidRuleClasses.AndroidBaseRule());
           builder.addRuleDefinition(new AndroidRuleClasses.AndroidResourceSupportRule());
           builder.addRuleDefinition(
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidToolsDefaultsJarRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidToolsDefaultsJarRule.java
new file mode 100644
index 0000000..84a6ba8
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidToolsDefaultsJarRule.java
@@ -0,0 +1,37 @@
+// Copyright 2023 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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.bazel.rules.android;
+
+import com.google.devtools.build.lib.analysis.RuleDefinition;
+import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.packages.RuleClass;
+import com.google.devtools.build.lib.rules.android.AndroidRuleClasses;
+
+/** Rule class definition for {@code android_tools_defaults_jar}. */
+public class BazelAndroidToolsDefaultsJarRule implements RuleDefinition {
+  @Override
+  public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment environment) {
+    return builder.build();
+  }
+
+  @Override
+  public Metadata getMetadata() {
+    return RuleDefinition.Metadata.builder()
+        .name("android_tools_defaults_jar")
+        .ancestors(
+            AndroidRuleClasses.AndroidBaseToolsDefaultsJarRule.class, BazelSdkToolchainRule.class)
+        .factoryClass(BazelAndroidToolsDefaultsJar.class)
+        .build();
+  }
+}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
index b320cd2..e5eaba2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
@@ -975,13 +975,7 @@
   }
 
   /** Definition of the {@code android_tools_defaults_jar} rule. */
-  public static final class AndroidToolsDefaultsJarRule implements RuleDefinition {
-
-    private final Class<? extends AndroidToolsDefaultsJar> factoryClass;
-
-    public AndroidToolsDefaultsJarRule(Class<? extends AndroidToolsDefaultsJar> factoryClass) {
-      this.factoryClass = factoryClass;
-    }
+  public static final class AndroidBaseToolsDefaultsJarRule implements RuleDefinition {
 
     @Override
     public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment environment) {
@@ -997,9 +991,9 @@
     @Override
     public Metadata getMetadata() {
       return Metadata.builder()
-          .name("android_tools_defaults_jar")
+          .name("$android_base_tools_defaults_jar")
+          .type(RuleClassType.ABSTRACT)
           .ancestors(BaseRuleClasses.NativeBuildRule.class)
-          .factoryClass(factoryClass)
           .build();
     }
   }