aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
diff options
context:
space:
mode:
authorGravatar gregce <gregce@google.com>2017-12-28 11:58:15 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-28 11:59:56 -0800
commit4e093d8e08454c9c2c04e94fe2e97ef4592198b6 (patch)
treecde1332470f53d3a45a68b6852a207bc6851d8e2 /src/main/java/com/google/devtools/build/lib/packages/Attribute.java
parent8bd201631e380327f5a7fb72e11bd493973913b8 (diff)
Replace Attribute.ConfigurationTransition with config.transitions.ConfigurationTransitionProxy.
The "proxy" part is to dissuade people from writing: void myfunc(ConfigurationTransition transition) signatures casually. Maybe that's actually a better name than "Transition". But I'd rather rename Transition to ConfigurationTransition in its own change if we want to do that. PiperOrigin-RevId: 180285321
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages/Attribute.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/Attribute.java39
1 files changed, 7 insertions, 32 deletions
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 38fdda7317..0a368e1fc8 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
@@ -29,6 +29,7 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Ordering;
import com.google.common.collect.Sets;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
+import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransitionProxy;
import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
import com.google.devtools.build.lib.analysis.config.transitions.Transition;
import com.google.devtools.build.lib.events.EventHandler;
@@ -147,32 +148,6 @@ public final class Attribute implements Comparable<Attribute> {
}
}
- /**
- * Declaration how the configuration should change when following a label or label list attribute.
- *
- * <p>Do not add to this. Use {@link
- * com.google.devtools.build.lib.analysis.config.PatchTransition} or {@link SplitTransition}
- * instead.
- */
- public enum ConfigurationTransition implements Transition {
- /** No transition, i.e., the same configuration as the current. */
- NONE,
-
- /** Transition to a null configuration (applies to, e.g., input files). */
- NULL,
-
- /** Transition from the target configuration to the data configuration. */
- // TODO(bazel-team): Move this elsewhere.
- DATA,
-
- /**
- * Transition to one or more configurations. To obtain the actual child configurations,
- * invoke {@link Attribute#getSplitTransition(AttributeMap)}.
- * See {@link SplitTransition}.
- **/
- SPLIT
- }
-
private enum PropertyFlag {
MANDATORY,
EXECUTABLE,
@@ -384,7 +359,7 @@ public final class Attribute implements Comparable<Attribute> {
public static class Builder <TYPE> {
private final String name;
private final Type<TYPE> type;
- private Transition configTransition = ConfigurationTransition.NONE;
+ private Transition configTransition = ConfigurationTransitionProxy.NONE;
private RuleClassNamePredicate allowedRuleClassesForLabels = ANY_RULE;
private RuleClassNamePredicate allowedRuleClassesForLabelsWarning = NO_RULE;
private SplitTransitionProvider splitTransitionProvider;
@@ -504,11 +479,11 @@ public final class Attribute implements Comparable<Attribute> {
* Defines the configuration transition for this attribute.
*/
public Builder<TYPE> cfg(SplitTransitionProvider splitTransitionProvider) {
- Preconditions.checkState(this.configTransition == ConfigurationTransition.NONE,
+ Preconditions.checkState(this.configTransition == ConfigurationTransitionProxy.NONE,
"the configuration transition is already set");
this.splitTransitionProvider = Preconditions.checkNotNull(splitTransitionProvider);
- this.configTransition = ConfigurationTransition.SPLIT;
+ this.configTransition = ConfigurationTransitionProxy.SPLIT;
return this;
}
@@ -525,9 +500,9 @@ public final class Attribute implements Comparable<Attribute> {
* {@code NONE}.
*/
public Builder<TYPE> cfg(Transition configTransition) {
- Preconditions.checkState(this.configTransition == ConfigurationTransition.NONE,
+ Preconditions.checkState(this.configTransition == ConfigurationTransitionProxy.NONE,
"the configuration transition is already set");
- Preconditions.checkArgument(configTransition != ConfigurationTransition.SPLIT,
+ Preconditions.checkArgument(configTransition != ConfigurationTransitionProxy.SPLIT,
"split transitions must be defined using the SplitTransition object");
if (configTransition instanceof SplitTransition) {
return cfg((SplitTransition) configTransition);
@@ -1829,7 +1804,7 @@ public final class Attribute implements Comparable<Attribute> {
ImmutableList<RuleAspect<?>> aspects) {
Preconditions.checkNotNull(configTransition);
Preconditions.checkArgument(
- (configTransition == ConfigurationTransition.NONE)
+ (configTransition == ConfigurationTransitionProxy.NONE)
|| type.getLabelClass() == LabelClass.DEPENDENCY
|| type.getLabelClass() == LabelClass.NONDEP_REFERENCE,
"Configuration transitions can only be specified for label or label list attributes");