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