diff options
author | Dmitry Lomov <dslomov@google.com> | 2015-12-16 15:10:20 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2015-12-16 15:31:44 +0000 |
commit | ace678e16def33a94ad1cb3bec7336d894510272 (patch) | |
tree | f83705c727e7af498cc2e2ad0e75020d866d14c0 /src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java | |
parent | 8853df9a19dabc72c3b723b84e6cb69b6fb2884e (diff) |
Implement aspect attributes and expose them to aspect implementation function.
--
MOS_MIGRATED_REVID=110356954
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java index b75c6b9d11..cc9951458f 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java @@ -136,7 +136,7 @@ public final class RuleContext extends TargetContext private final Set<ConfigMatchingProvider> configConditions; private final AttributeMap attributes; private final ImmutableSet<String> features; - private final Map<String, Attribute> aspectAttributes; + private final ImmutableMap<String, Attribute> aspectAttributes; private final BuildConfiguration hostConfiguration; private final ConfigurationFragmentPolicy configurationFragmentPolicy; private final Class<? extends BuildConfiguration.Fragment> universalFragment; @@ -147,11 +147,13 @@ public final class RuleContext extends TargetContext /* lazily computed cache for Make variables, computed from the above. See get... method */ private transient ConfigurationMakeVariableContext configurationMakeVariableContext = null; - private RuleContext(Builder builder, ListMultimap<String, ConfiguredTarget> targetMap, + private RuleContext( + Builder builder, + ListMultimap<String, ConfiguredTarget> targetMap, ListMultimap<String, ConfiguredFilesetEntry> filesetEntryMap, Set<ConfigMatchingProvider> configConditions, Class<? extends BuildConfiguration.Fragment> universalFragment, - Map<String, Attribute> aspectAttributes) { + ImmutableMap<String, Attribute> aspectAttributes) { super(builder.env, builder.rule, builder.configuration, builder.prerequisiteMap.get(null), builder.visibility); this.rule = builder.rule; @@ -234,6 +236,13 @@ public final class RuleContext extends TargetContext } /** + * Attributes from aspects. + */ + public ImmutableMap<String, Attribute> getAspectAttributes() { + return aspectAttributes; + } + + /** * Accessor for the Rule's attribute values. */ public AttributeMap attributes() { @@ -1241,7 +1250,7 @@ public final class RuleContext extends TargetContext private ListMultimap<Attribute, ConfiguredTarget> prerequisiteMap; private Set<ConfigMatchingProvider> configConditions; private NestedSet<PackageSpecification> visibility; - private Map<String, Attribute> aspectAttributes; + private ImmutableMap<String, Attribute> aspectAttributes; Builder(AnalysisEnvironment env, Rule rule, BuildConfiguration configuration, BuildConfiguration hostConfiguration, @@ -1284,7 +1293,7 @@ public final class RuleContext extends TargetContext * Adds attributes which are defined by an Aspect (and not by RuleClass). */ Builder setAspectAttributes(Map<String, Attribute> aspectAttributes) { - this.aspectAttributes = aspectAttributes; + this.aspectAttributes = ImmutableMap.copyOf(aspectAttributes); return this; } |