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();
}
}