Convert AttributeTransitionData to use a Builder.
PiperOrigin-RevId: 249057540
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
index 1d86342..1027804 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
@@ -349,10 +349,13 @@
if (toolchainContext != null && toolchainContext.executionPlatform() != null) {
executionPlatformLabel = toolchainContext.executionPlatform().label();
}
+ AttributeTransitionData attributeTransitionData =
+ AttributeTransitionData.builder()
+ .attributes(attributeMap)
+ .executionPlatform(executionPlatformLabel)
+ .build();
ConfigurationTransition attributeTransition =
- attribute
- .getTransitionFactory()
- .create(AttributeTransitionData.create(attributeMap, executionPlatformLabel));
+ attribute.getTransitionFactory().create(attributeTransitionData);
partiallyResolvedDeps.put(
entry.getKey(),
PartiallyResolvedDependency.of(toLabel, attributeTransition, propagatingAspects.build()));
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 ca8da90..76e3b42 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
@@ -844,9 +844,10 @@
attributeDefinition
.getTransitionFactory()
.create(
- AttributeTransitionData.create(
- ConfiguredAttributeMapper.of(rule, configConditions),
- getToolchainContext().executionPlatform().label()));
+ AttributeTransitionData.builder()
+ .attributes(ConfiguredAttributeMapper.of(rule, configConditions))
+ .executionPlatform(getToolchainContext().executionPlatform().label())
+ .build());
BuildOptions fromOptions = getConfiguration().getOptions();
List<BuildOptions> splitOptions = transition.split(fromOptions);
List<ConfiguredTargetAndData> deps = getConfiguredTargetAndTargetDeps(attributeName);
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AttributeTransitionData.java b/src/main/java/com/google/devtools/build/lib/packages/AttributeTransitionData.java
index 831585f..fd24a85 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AttributeTransitionData.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AttributeTransitionData.java
@@ -34,14 +34,21 @@
@Nullable
public abstract Label executionPlatform();
- /** Returns a new {@link AttributeTransitionData} instance. */
- public static AttributeTransitionData create(AttributeMap attributes) {
- return create(attributes, null);
+ /** Returns a new {@link Builder} for {@link AttributeTransitionData}. */
+ public static Builder builder() {
+ return new AutoValue_AttributeTransitionData.Builder();
}
- /** Returns a new {@link AttributeTransitionData} instance. */
- public static AttributeTransitionData create(
- AttributeMap attributes, @Nullable Label executionPlatform) {
- return new AutoValue_AttributeTransitionData(attributes, executionPlatform);
+ /** Builder class for {@link AttributeTransitionData}. */
+ @AutoValue.Builder
+ public abstract static class Builder {
+ /** Sets the attributes. */
+ public abstract Builder attributes(AttributeMap attributes);
+
+ /** Sets the execution platform label. */
+ public abstract Builder executionPlatform(@Nullable Label executionPlatform);
+
+ /** Returns the new {@link AttributeTransitionData}. */
+ public abstract AttributeTransitionData build();
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/ExecutionTransitionFactoryTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/ExecutionTransitionFactoryTest.java
index e183eba..b619c8f 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/config/ExecutionTransitionFactoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/config/ExecutionTransitionFactoryTest.java
@@ -37,7 +37,10 @@
ExecutionTransitionFactory execTransitionFactory = new ExecutionTransitionFactory();
PatchTransition transition =
execTransitionFactory.create(
- AttributeTransitionData.create(FakeAttributeMapper.empty(), EXECUTION_PLATFORM));
+ AttributeTransitionData.builder()
+ .attributes(FakeAttributeMapper.empty())
+ .executionPlatform(EXECUTION_PLATFORM)
+ .build());
assertThat(transition).isNotNull();
@@ -63,7 +66,10 @@
// No execution platform available.
PatchTransition transition =
execTransitionFactory.create(
- AttributeTransitionData.create(FakeAttributeMapper.empty(), null));
+ AttributeTransitionData.builder()
+ .attributes(FakeAttributeMapper.empty())
+ .executionPlatform(null)
+ .build());
assertThat(transition).isNotNull();
diff --git a/src/test/java/com/google/devtools/build/lib/packages/AttributeTest.java b/src/test/java/com/google/devtools/build/lib/packages/AttributeTest.java
index e63edff..2bd90df 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/AttributeTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/AttributeTest.java
@@ -259,7 +259,8 @@
assertThat(attr.getTransitionFactory().isSplit()).isTrue();
ConfigurationTransition transition =
attr.getTransitionFactory()
- .create(AttributeTransitionData.create(FakeAttributeMapper.empty()));
+ .create(
+ AttributeTransitionData.builder().attributes(FakeAttributeMapper.empty()).build());
assertThat(transition).isEqualTo(splitTransition);
}
@@ -271,7 +272,8 @@
assertThat(attr.getTransitionFactory().isSplit()).isTrue();
ConfigurationTransition transition =
attr.getTransitionFactory()
- .create(AttributeTransitionData.create(FakeAttributeMapper.empty()));
+ .create(
+ AttributeTransitionData.builder().attributes(FakeAttributeMapper.empty()).build());
assertThat(transition).isInstanceOf(TestSplitTransition.class);
}