Provide AspectDescriptor to ConfiguredAspect.
Also clean up the setting of aspect name in ConfiguredAspect and
AspectDefintion - it is now obtained from the AspectClass.
--
MOS_MIGRATED_REVID=140357052
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java b/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java
index 02405df..f3186d7 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java
@@ -55,7 +55,7 @@
@Immutable
public final class AspectDefinition {
- private final String name;
+ private final AspectClass aspectClass;
private final ImmutableSet<Class<?>> requiredProviders;
private final ImmutableSet<String> requiredProviderNames;
private final ImmutableMap<String, Attribute> attributes;
@@ -67,12 +67,12 @@
}
private AspectDefinition(
- String name,
+ AspectClass aspectClass,
ImmutableSet<Class<?>> requiredProviders,
ImmutableMap<String, Attribute> attributes,
PropagationFunction attributeAspects,
@Nullable ConfigurationFragmentPolicy configurationFragmentPolicy) {
- this.name = name;
+ this.aspectClass = aspectClass;
this.requiredProviders = requiredProviders;
this.requiredProviderNames = toStringSet(requiredProviders);
this.attributes = attributes;
@@ -81,7 +81,11 @@
}
public String getName() {
- return name;
+ return aspectClass.getName();
+ }
+
+ public AspectClass getAspectClass() {
+ return aspectClass;
}
/**
@@ -222,7 +226,7 @@
* Builder class for {@link AspectDefinition}.
*/
public static final class Builder {
- private final String name;
+ private final AspectClass aspectClass;
private final Map<String, Attribute> attributes = new LinkedHashMap<>();
private final Set<Class<?>> requiredProviders = new LinkedHashSet<>();
private final Multimap<String, AspectClass> attributeAspects = LinkedHashMultimap.create();
@@ -230,8 +234,8 @@
private final ConfigurationFragmentPolicy.Builder configurationFragmentPolicy =
new ConfigurationFragmentPolicy.Builder();
- public Builder(String name) {
- this.name = name;
+ public Builder(AspectClass aspectClass) {
+ this.aspectClass = aspectClass;
}
/**
@@ -408,7 +412,7 @@
* <p>The builder object is reusable afterwards.
*/
public AspectDefinition build() {
- return new AspectDefinition(name, ImmutableSet.copyOf(requiredProviders),
+ return new AspectDefinition(aspectClass, ImmutableSet.copyOf(requiredProviders),
ImmutableMap.copyOf(attributes),
allAttributesAspects != null
? new AllAttributesPropagationFunction(allAttributesAspects)