diff options
author | 2017-12-21 12:40:20 -0800 | |
---|---|---|
committer | 2017-12-21 12:42:14 -0800 | |
commit | c7b2121757343bd117ecdc2513c945e2e3da6406 (patch) | |
tree | edd77a1271f23432bd080d02c11117c88a9b7fdf /src/main | |
parent | 46356dfa59428b665aa280ba4cbca6e449f73c5b (diff) |
Remove final accessors of ConfigurationTransition.HOST.
Also lean interfaces from Attribute.ConfigurationTransition
to Attribute.Transition.
PiperOrigin-RevId: 179846158
Diffstat (limited to 'src/main')
3 files changed, 30 insertions, 29 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 b5d083486a..4462ae4bee 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 @@ -389,21 +389,21 @@ public final class RuleContext extends TargetContext * Returns a configuration fragment for this this target. */ @Nullable - public <T extends Fragment> T getFragment(Class<T> fragment, ConfigurationTransition config) { - return getFragment(fragment, fragment.getSimpleName(), "", config); + public <T extends Fragment> T getFragment(Class<T> fragment, Attribute.Transition transition) { + return getFragment(fragment, fragment.getSimpleName(), "", transition); } @Nullable protected <T extends Fragment> T getFragment(Class<T> fragment, String name, - String additionalErrorMessage, ConfigurationTransition config) { + String additionalErrorMessage, Attribute.Transition transition) { // TODO(bazel-team): The fragments can also be accessed directly through BuildConfiguration. // Can we lock that down somehow? - Preconditions.checkArgument(isLegalFragment(fragment, config), + Preconditions.checkArgument(isLegalFragment(fragment, transition), "%s has to declare '%s' as a required fragment " + "in %s configuration in order to access it.%s", - getRuleClassNameForLogging(), name, FragmentCollection.getConfigurationName(config), + getRuleClassNameForLogging(), name, FragmentCollection.getConfigurationName(transition), additionalErrorMessage); - return getConfiguration(config).getFragment(fragment); + return getConfiguration(transition).getFragment(fragment); } @Nullable @@ -413,9 +413,9 @@ public final class RuleContext extends TargetContext } @Nullable - public Fragment getSkylarkFragment(String name, ConfigurationTransition config) { + public Fragment getSkylarkFragment(String name, Attribute.Transition transition) { Class<? extends Fragment> fragmentClass = - getConfiguration(config).getSkylarkFragmentByName(name); + getConfiguration(transition).getSkylarkFragmentByName(name); if (fragmentClass == null) { return null; } @@ -423,19 +423,19 @@ public final class RuleContext extends TargetContext String.format( " Please update the '%1$sfragments' argument of the rule definition " + "(for example: %1$sfragments = [\"%2$s\"])", - (config == ConfigurationTransition.HOST) ? "host_" : "", name), - config); + (transition.isHostTransition()) ? "host_" : "", name), + transition); } - public ImmutableCollection<String> getSkylarkFragmentNames(ConfigurationTransition config) { - return getConfiguration(config).getSkylarkFragmentNames(); + public ImmutableCollection<String> getSkylarkFragmentNames(Attribute.Transition transition) { + return getConfiguration(transition).getSkylarkFragmentNames(); } public <T extends Fragment> boolean isLegalFragment( - Class<T> fragment, ConfigurationTransition config) { + Class<T> fragment, Attribute.Transition transition) { return fragment == universalFragment || fragment == PlatformConfiguration.class - || configurationFragmentPolicy.isLegalConfigurationFragment(fragment, config); + || configurationFragmentPolicy.isLegalConfigurationFragment(fragment, transition); } public <T extends Fragment> boolean isLegalFragment(Class<T> fragment) { @@ -443,8 +443,8 @@ public final class RuleContext extends TargetContext return isLegalFragment(fragment, ConfigurationTransition.NONE); } - protected BuildConfiguration getConfiguration(ConfigurationTransition config) { - return config.equals(ConfigurationTransition.HOST) ? hostConfiguration : getConfiguration(); + protected BuildConfiguration getConfiguration(Attribute.Transition transition) { + return transition.isHostTransition() ? hostConfiguration : getConfiguration(); } @Override @@ -1058,7 +1058,7 @@ public final class RuleContext extends TargetContext } Attribute.Transition transition = attributeDefinition.getConfigurationTransition(); if (mode == Mode.HOST) { - if (!(transition instanceof PatchTransition) && transition != ConfigurationTransition.HOST) { + if (!(transition instanceof PatchTransition)) { throw new IllegalStateException(getRule().getLocation() + ": " + getRuleClassNameForLogging() + " attribute " + attributeName + " is not configured for the host configuration"); @@ -1098,7 +1098,7 @@ public final class RuleContext extends TargetContext throw new IllegalStateException(getRuleClassNameForLogging() + " attribute " + attributeName + " is not a label type attribute"); } - if (attributeDefinition.getConfigurationTransition() == ConfigurationTransition.HOST) { + if (attributeDefinition.getConfigurationTransition().isHostTransition()) { return Mode.HOST; } else if (attributeDefinition.getConfigurationTransition() == ConfigurationTransition.NONE) { return Mode.TARGET; diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java b/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java index 0853001052..cdadf22a85 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java @@ -17,7 +17,7 @@ import com.google.common.base.Joiner; import com.google.common.collect.ImmutableCollection; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition; +import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; import com.google.devtools.build.lib.syntax.ClassObject; @@ -40,22 +40,22 @@ import javax.annotation.Nullable; + "(see <a href=\"../rules.md#fragments\">here</a>).") public class FragmentCollection implements ClassObject { private final RuleContext ruleContext; - private final ConfigurationTransition config; + private final Attribute.Transition transition; - public FragmentCollection(RuleContext ruleContext, ConfigurationTransition config) { + public FragmentCollection(RuleContext ruleContext, Attribute.Transition transition) { this.ruleContext = ruleContext; - this.config = config; + this.transition = transition; } @Override @Nullable public Object getValue(String name) { - return ruleContext.getSkylarkFragment(name, config); + return ruleContext.getSkylarkFragment(name, transition); } @Override public ImmutableCollection<String> getKeys() { - return ruleContext.getSkylarkFragmentNames(config); + return ruleContext.getSkylarkFragmentNames(transition); } @Override @@ -64,19 +64,19 @@ public class FragmentCollection implements ClassObject { return String.format( "There is no configuration fragment named '%s' in %s configuration. " + "Available fragments: %s", - name, getConfigurationName(config), printKeys()); + name, getConfigurationName(transition), printKeys()); } private String printKeys() { return String.format("'%s'", Joiner.on("', '").join(getKeys())); } - public static String getConfigurationName(ConfigurationTransition config) { - return (config == ConfigurationTransition.HOST) ? "host" : "target"; + public static String getConfigurationName(Attribute.Transition config) { + return config.isHostTransition() ? "host" : "target"; } @Override public String toString() { - return getConfigurationName(config) + ": [ " + printKeys() + "]"; + return getConfigurationName(transition) + ": [ " + printKeys() + "]"; } } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java index 7910b80410..1bcc46c5ed 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java @@ -36,6 +36,7 @@ import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.analysis.config.FragmentCollection; +import com.google.devtools.build.lib.analysis.config.HostTransition; import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode; import com.google.devtools.build.lib.analysis.stringtemplate.ExpansionException; import com.google.devtools.build.lib.analysis.test.InstrumentedFilesCollector; @@ -225,7 +226,7 @@ public final class SkylarkRuleContext implements SkylarkValue { this.ruleContext = Preconditions.checkNotNull(ruleContext); this.ruleLabelCanonicalName = ruleContext.getLabel().getCanonicalForm(); this.fragments = new FragmentCollection(ruleContext, ConfigurationTransition.NONE); - this.hostFragments = new FragmentCollection(ruleContext, ConfigurationTransition.HOST); + this.hostFragments = new FragmentCollection(ruleContext, HostTransition.INSTANCE); this.aspectDescriptor = aspectDescriptor; this.skylarkSemantics = skylarkSemantics; |