diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java | 86 |
1 files changed, 63 insertions, 23 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java b/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java index 454cd71bf9..4fab639d96 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java +++ b/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java @@ -86,8 +86,7 @@ public class AggregatingAttributeMapper extends AbstractAttributeMapper { } /** - * Override that also visits the rule's configurable attribute keys (which are - * themselves labels). + * Override that also visits the rule's configurable attribute keys (which are themselves labels). * * <p>Note that we directly parse the selectors rather than just calling {@link #visitAttribute} * to iterate over all possible values. That's because {@link #visitAttribute} can grow @@ -96,12 +95,14 @@ public class AggregatingAttributeMapper extends AbstractAttributeMapper { * path whenever actual value iteration isn't specifically needed. */ @Override - protected void visitLabels(Attribute attribute, AcceptsLabelAttribute observer) { + protected void visitLabels(Attribute attribute, AcceptsLabelAttribute observer) + throws InterruptedException { visitLabels(attribute, true, observer); } - private void visitLabels(Attribute attribute, boolean includeSelectKeys, - AcceptsLabelAttribute observer) { + private void visitLabels( + Attribute attribute, boolean includeSelectKeys, AcceptsLabelAttribute observer) + throws InterruptedException { Type<?> type = attribute.getType(); SelectorList<?> selectorList = getSelectorList(attribute.getName(), type); if (selectorList == null) { @@ -137,12 +138,13 @@ public class AggregatingAttributeMapper extends AbstractAttributeMapper { } /** - * Returns all labels reachable via the given attribute. If a label is listed multiple times, - * each instance appears in the returned list. + * Returns all labels reachable via the given attribute. If a label is listed multiple times, each + * instance appears in the returned list. * * @param includeSelectKeys whether to include config_setting keys for configurable attributes */ - public List<Label> getReachableLabels(String attributeName, boolean includeSelectKeys) { + public List<Label> getReachableLabels(String attributeName, boolean includeSelectKeys) + throws InterruptedException { final ImmutableList.Builder<Label> builder = ImmutableList.builder(); visitLabels(getAttributeDefinition(attributeName), includeSelectKeys, new AcceptsLabelAttribute() { @@ -520,8 +522,10 @@ public class AggregatingAttributeMapper extends AbstractAttributeMapper { return owner.get(attributeName, type); } if (!directMap.containsKey(attributeName)) { - throw new IllegalArgumentException("attribute \"" + attributeName - + "\" isn't available in this computed default context"); + throw new IllegalArgumentException( + "attribute \"" + + attributeName + + "\" isn't available in this computed default context"); } return type.cast(directMap.get(attributeName)); } @@ -531,34 +535,70 @@ public class AggregatingAttributeMapper extends AbstractAttributeMapper { return owner.isConfigurable(attributeName, type); } - @Override public String getName() { return owner.getName(); } - @Override public Label getLabel() { return owner.getLabel(); } - @Override public Iterable<String> getAttributeNames() { + @Override + public String getName() { + return owner.getName(); + } + + @Override + public Label getLabel() { + return owner.getLabel(); + } + + @Override + public Iterable<String> getAttributeNames() { return ImmutableList.<String>builder() - .addAll(directMap.keySet()).addAll(nonConfigurableAttributes).build(); + .addAll(directMap.keySet()) + .addAll(nonConfigurableAttributes) + .build(); } + @Override - public void visitLabels(AcceptsLabelAttribute observer) { owner.visitLabels(observer); } + public void visitLabels(AcceptsLabelAttribute observer) throws InterruptedException { + owner.visitLabels(observer); + } + @Override - public String getPackageDefaultHdrsCheck() { return owner.getPackageDefaultHdrsCheck(); } + public String getPackageDefaultHdrsCheck() { + return owner.getPackageDefaultHdrsCheck(); + } + @Override - public Boolean getPackageDefaultTestOnly() { return owner.getPackageDefaultTestOnly(); } + public Boolean getPackageDefaultTestOnly() { + return owner.getPackageDefaultTestOnly(); + } + @Override - public String getPackageDefaultDeprecation() { return owner.getPackageDefaultDeprecation(); } + public String getPackageDefaultDeprecation() { + return owner.getPackageDefaultDeprecation(); + } + @Override public ImmutableList<String> getPackageDefaultCopts() { return owner.getPackageDefaultCopts(); } - @Nullable @Override - public Type<?> getAttributeType(String attrName) { return owner.getAttributeType(attrName); } - @Nullable @Override public Attribute getAttributeDefinition(String attrName) { + + @Nullable + @Override + public Type<?> getAttributeType(String attrName) { + return owner.getAttributeType(attrName); + } + + @Nullable + @Override + public Attribute getAttributeDefinition(String attrName) { return owner.getAttributeDefinition(attrName); } - @Override public boolean isAttributeValueExplicitlySpecified(String attributeName) { + + @Override + public boolean isAttributeValueExplicitlySpecified(String attributeName) { return owner.isAttributeValueExplicitlySpecified(attributeName); } + @Override - public boolean has(String attrName, Type<?> type) { return owner.has(attrName, type); } + public boolean has(String attrName, Type<?> type) { + return owner.has(attrName, type); + } }; } } |