Introduce an AspectClass: a representation of a class of aspects.

For native aspects, AspectClass is a facade for Class<AspectFactory<...>>.

--
MOS_MIGRATED_REVID=105986390
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectValue.java
index 884d5db..336056f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectValue.java
@@ -19,12 +19,12 @@
 import com.google.devtools.build.lib.actions.Action;
 import com.google.devtools.build.lib.analysis.Aspect;
 import com.google.devtools.build.lib.analysis.AspectWithParameters;
-import com.google.devtools.build.lib.analysis.ConfiguredAspectFactory;
 import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.cmdline.PackageIdentifier;
 import com.google.devtools.build.lib.collect.nestedset.NestedSet;
 import com.google.devtools.build.lib.events.Location;
+import com.google.devtools.build.lib.packages.AspectClass;
 import com.google.devtools.build.lib.packages.AspectParameters;
 import com.google.devtools.build.lib.packages.Package;
 import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -72,15 +72,15 @@
     private NativeAspectKey(
         Label label,
         BuildConfiguration configuration,
-        Class<? extends ConfiguredAspectFactory> aspectFactory,
+        AspectClass aspectClass ,
         AspectParameters parameters) {
       super(label, configuration);
       Preconditions.checkNotNull(parameters);
-      this.aspect = new AspectWithParameters(aspectFactory, parameters);
+      this.aspect = new AspectWithParameters(aspectClass, parameters);
     }
 
-    public Class<? extends ConfiguredAspectFactory> getAspect() {
-      return aspect.getAspectFactory();
+    public AspectClass getAspect() {
+      return aspect.getAspectClass();
     }
 
     @Override
@@ -91,7 +91,7 @@
 
     @Override
     public String getDescription() {
-      return String.format("%s of %s", aspect.getAspectFactory().getName(), getLabel());
+      return String.format("%s of %s", aspect.getAspectClass().getName(), getLabel());
     }
 
     @Override
@@ -122,7 +122,7 @@
 
     @Override
     public String toString() {
-      return label + "#" + aspect.getAspectFactory().getSimpleName() + " "
+      return label + "#" + aspect.getAspectClass().getName() + " "
           + (configuration == null ? "null" : configuration.checksum()) + " "
           + aspect.getParameters();
     }
@@ -209,8 +209,10 @@
     return transitivePackages;
   }
 
-  public static SkyKey key(Label label, BuildConfiguration configuration,
-      Class<? extends ConfiguredAspectFactory> aspectFactory,
+  public static SkyKey key(
+      Label label,
+      BuildConfiguration configuration,
+      AspectClass aspectFactory,
       AspectParameters additionalConfiguration) {
     return new SkyKey(
         SkyFunctions.NATIVE_ASPECT,
@@ -222,9 +224,7 @@
   }
 
   public static NativeAspectKey createAspectKey(
-      Label label,
-      BuildConfiguration configuration,
-      Class<? extends ConfiguredAspectFactory> aspectFactory) {
+      Label label, BuildConfiguration configuration, AspectClass aspectFactory) {
     return new NativeAspectKey(label, configuration, aspectFactory, AspectParameters.EMPTY);
   }