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