Remove SkylarkAspectClass.getDefintion.

--
MOS_MIGRATED_REVID=119162307
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
index bf4a0a7..f865e99 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
@@ -86,15 +86,18 @@
   }
 
   private static class SkylarkRuleAspect extends RuleAspect<SkylarkAspectClass> {
-    public SkylarkRuleAspect(SkylarkAspectClass aspectClass) {
+    private final AspectDefinition definition;
+
+    public SkylarkRuleAspect(SkylarkAspectClass aspectClass, AspectDefinition definition) {
       super(aspectClass, NO_PARAMETERS);
+      this.definition = definition;
     }
 
     @Override
     public Aspect getAspect(Rule rule) {
       return Aspect.forSkylark(
           aspectClass,
-          aspectClass.getDefinition(),
+          definition,
           parametersExtractor.apply(rule));
     }
   }
@@ -795,8 +798,8 @@
       return this.aspect(aspect, noParameters);
     }
 
-    public Builder<TYPE> aspect(SkylarkAspectClass aspectClass) {
-      this.aspects.add(new SkylarkRuleAspect(aspectClass));
+    public Builder<TYPE> aspect(SkylarkAspectClass aspectClass, AspectDefinition definition) {
+      this.aspects.add(new SkylarkRuleAspect(aspectClass, definition));
       return this;
     }
 
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkAspectClass.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkAspectClass.java
index 935cb8f..340daa2 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkAspectClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkAspectClass.java
@@ -15,17 +15,31 @@
 package com.google.devtools.build.lib.packages;
 
 import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 
 import java.util.Objects;
 
 /**
  * {@link AspectClass} for aspects defined in Skylark.
  */
-public abstract class SkylarkAspectClass implements AspectClass {
+@Immutable
+public final class SkylarkAspectClass implements AspectClass {
+  private final Label extensionLabel;
+  private final String exportedName;
 
-  public abstract Label getExtensionLabel();
+  public SkylarkAspectClass(Label extensionLabel, String exportedName) {
+    this.extensionLabel = extensionLabel;
+    this.exportedName = exportedName;
+  }
 
-  public abstract String getExportedName();
+  public Label getExtensionLabel() {
+    return extensionLabel;
+  }
+
+  public String getExportedName() {
+    return exportedName;
+  }
+
 
   @Override
   public final String getName() {
@@ -44,15 +58,12 @@
 
     SkylarkAspectClass that = (SkylarkAspectClass) o;
 
-    return getExtensionLabel().equals(that.getExtensionLabel())
-        && getExportedName().equals(that.getExportedName());
+    return extensionLabel.equals(that.extensionLabel)
+        && exportedName.equals(that.exportedName);
   }
 
   @Override
   public final int hashCode() {
     return Objects.hash(getExtensionLabel(), getExportedName());
   }
-
-  @Deprecated
-  public abstract AspectDefinition getDefinition();
 }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java
index 4876b6a..80dcba4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java
@@ -46,7 +46,6 @@
 import com.google.devtools.build.lib.collect.nestedset.NestedSet;
 import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
 import com.google.devtools.build.lib.collect.nestedset.Order;
-import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 import com.google.devtools.build.lib.events.Location;
 import com.google.devtools.build.lib.packages.AspectDefinition;
 import com.google.devtools.build.lib.packages.Attribute;
@@ -555,7 +554,7 @@
             throw new EvalException(definitionLocation,
                 "All aspects applied to rule dependencies must be top-level values");
           }
-          attributeBuilder.aspect(skylarkAspect.getAspectClass());
+          attributeBuilder.aspect(skylarkAspect.getAspectClass(), skylarkAspect.getDefinition());
         }
 
         addAttribute(definitionLocation, builder,
@@ -860,7 +859,7 @@
     private final ImmutableSet<String> fragments;
     private final ImmutableSet<String> hostFragments;
     private final Environment funcallEnv;
-    private Exported exported;
+    private SkylarkAspectClass aspectClass;
 
     public SkylarkAspect(
         BaseFunction implementation,
@@ -893,20 +892,6 @@
       return attributes;
     }
 
-    /**
-     * Gets the set of configuration fragment names needed in the target configuration.
-     */
-    public ImmutableSet<String> getFragments() {
-      return fragments;
-    }
-
-    /**
-     * Gets the set of configuration fragment names needed in the host configuration.
-     */
-    public ImmutableSet<String> getHostFragments() {
-      return hostFragments;
-    }
-
     @Override
     public boolean isImmutable() {
       return implementation.isImmutable();
@@ -924,86 +909,29 @@
 
     public SkylarkAspectClass getAspectClass() {
       Preconditions.checkState(isExported());
-      return new SkylarkAspectClassImpl(this);
+      return aspectClass;
     }
 
     void export(Label extensionLabel, String name) {
-      this.exported = new Exported(extensionLabel, name);
+      Preconditions.checkArgument(!isExported());
+      this.aspectClass = new SkylarkAspectClass(extensionLabel, name);
     }
 
     public boolean isExported() {
-      return exported != null;
+      return aspectClass != null;
     }
 
-    private Label getExtensionLabel() {
-      Preconditions.checkArgument(isExported());
-      return exported.extensionLabel;
-    }
-
-    private String getExportedName() {
-      Preconditions.checkArgument(isExported());
-      return exported.name;
-    }
-
-    @Immutable
-    private static class Exported {
-      private final Label extensionLabel;
-      private final String name;
-
-      public Exported(Label extensionLabel, String name) {
-        this.extensionLabel = extensionLabel;
-        this.name = name;
-      }
-
-      @Override
-      public String toString() {
-        return extensionLabel.toString() + "%" + name;
-      }
-    }
-  }
-
-  /**
-   * Implementation of an aspect class defined in Skylark.
-   */
-  @Immutable
-  private static final class SkylarkAspectClassImpl extends SkylarkAspectClass {
-    private final AspectDefinition aspectDefinition;
-    private final Label extensionLabel;
-    private final String exportedName;
-
-    public SkylarkAspectClassImpl(SkylarkAspect skylarkAspect) {
-      Preconditions.checkArgument(skylarkAspect.isExported(), "Skylark aspects must be exported");
-      this.extensionLabel = skylarkAspect.getExtensionLabel();
-      this.exportedName = skylarkAspect.getExportedName();
-
+    public AspectDefinition getDefinition() {
       AspectDefinition.Builder builder = new AspectDefinition.Builder(getName());
-      for (String attributeAspect : skylarkAspect.getAttributeAspects()) {
-        builder.attributeAspect(attributeAspect, this);
+      for (String attributeAspect : attributeAspects) {
+        builder.attributeAspect(attributeAspect, aspectClass);
       }
-      ImmutableList<Pair<String, Descriptor>> attributes = skylarkAspect.getAttributes();
       for (Pair<String, Descriptor> attribute : attributes) {
         builder.add(attribute.second.getAttributeBuilder().build(attribute.first));
       }
-      builder.requiresConfigurationFragmentsBySkylarkModuleName(skylarkAspect.getFragments());
-      builder.requiresHostConfigurationFragmentsBySkylarkModuleName(
-          skylarkAspect.getHostFragments());
-      this.aspectDefinition = builder.build();
+      builder.requiresConfigurationFragmentsBySkylarkModuleName(fragments);
+      builder.requiresHostConfigurationFragmentsBySkylarkModuleName(hostFragments);
+      return builder.build();
     }
-
-    @Override
-    public AspectDefinition getDefinition() {
-      return aspectDefinition;
-    }
-
-    @Override
-    public Label getExtensionLabel() {
-      return extensionLabel;
-    }
-
-    @Override
-    public String getExportedName() {
-      return exportedName;
-    }
-
   }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
index aa171b2..d325445 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
@@ -140,10 +140,10 @@
         return null;
       }
 
-      aspectFactory = new SkylarkAspectFactory(skylarkAspect.getName(), skylarkAspect);
+      aspectFactory = new SkylarkAspectFactory(skylarkAspect);
       aspect = Aspect.forSkylark(
           skylarkAspect.getAspectClass(),
-          skylarkAspect.getAspectClass().getDefinition(),
+          skylarkAspect.getDefinition(),
           key.getParameters());
     } else {
       throw new IllegalStateException();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java
index ee77e00..5500bc8 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java
@@ -41,11 +41,9 @@
  */
 public class SkylarkAspectFactory implements ConfiguredAspectFactory {
 
-  private final String name;
   private final SkylarkAspect skylarkAspect;
 
-  public SkylarkAspectFactory(String name, SkylarkAspect skylarkAspect) {
-    this.name = name;
+  public SkylarkAspectFactory(SkylarkAspect skylarkAspect) {
     this.skylarkAspect = skylarkAspect;
   }
 
@@ -86,7 +84,8 @@
           return null;
         }
 
-        ConfiguredAspect.Builder builder = new ConfiguredAspect.Builder(name, ruleContext);
+        ConfiguredAspect.Builder builder = new ConfiguredAspect.Builder(
+            skylarkAspect.getName(), ruleContext);
 
         SkylarkClassObject struct = (SkylarkClassObject) aspectSkylarkObject;
         Location loc = struct.getCreationLoc();
@@ -126,7 +125,7 @@
     if (e instanceof EvalExceptionWithStackTrace) {
       ((EvalExceptionWithStackTrace) e)
           .registerPhantomFuncall(
-              String.format("%s(...)", name),
+              String.format("%s(...)", skylarkAspect.getName()),
               base.getTarget().getAssociatedRule().getLocation(),
               skylarkAspect.getImplementation());
     }