Skip to content

Commit 8078cbd

Browse files
0xjjoyyJordonPhillips
authored andcommitted
add builder
1 parent 3121439 commit 8078cbd

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

smithy-aws-iam-traits/src/main/java/software/amazon/smithy/aws/iam/traits/ServiceResolvedConditionKeysTrait.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
import software.amazon.smithy.model.shapes.ShapeId;
1313
import software.amazon.smithy.model.traits.StringListTrait;
1414
import software.amazon.smithy.utils.ListUtils;
15+
import software.amazon.smithy.utils.ToSmithyBuilder;
1516

16-
public final class ServiceResolvedConditionKeysTrait extends StringListTrait {
17+
public final class ServiceResolvedConditionKeysTrait extends StringListTrait
18+
implements ToSmithyBuilder<ServiceResolvedConditionKeysTrait> {
1719
public static final ShapeId ID = ShapeId.from("aws.iam#serviceResolvedConditionKeys");
1820
private List<String> resolvedConditionKeys;
1921

@@ -47,4 +49,20 @@ public Provider() {
4749
super(ID, ServiceResolvedConditionKeysTrait::new);
4850
}
4951
}
52+
53+
public static Builder builder() {
54+
return new Builder();
55+
}
56+
57+
@Override
58+
public Builder toBuilder() {
59+
return builder().sourceLocation(getSourceLocation()).values(getValues());
60+
}
61+
62+
public static final class Builder extends StringListTrait.Builder<ServiceResolvedConditionKeysTrait, Builder> {
63+
@Override
64+
public ServiceResolvedConditionKeysTrait build() {
65+
return new ServiceResolvedConditionKeysTrait(getValues(), getSourceLocation());
66+
}
67+
}
5068
}

smithy-aws-iam-traits/src/test/java/software/amazon/smithy/aws/iam/traits/ServiceResolvedConditionKeysTraitTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import static org.hamcrest.MatcherAssert.assertThat;
88
import static org.hamcrest.Matchers.equalTo;
9+
import static org.junit.jupiter.api.Assertions.assertEquals;
910

1011
import org.junit.jupiter.api.Test;
1112
import software.amazon.smithy.model.Model;
@@ -14,6 +15,18 @@
1415
import software.amazon.smithy.utils.ListUtils;
1516

1617
public class ServiceResolvedConditionKeysTraitTest {
18+
19+
@Test
20+
public void testBuilder() {
21+
ServiceResolvedConditionKeysTrait.Builder builder = ServiceResolvedConditionKeysTrait.builder();
22+
builder.addValue("one");
23+
builder.addValue("two");
24+
ServiceResolvedConditionKeysTrait trait = builder.build();
25+
assertEquals(2, trait.getValues().size());
26+
assertThat(trait.getValues(),
27+
equalTo(ListUtils.of("one", "two")));
28+
}
29+
1730
@Test
1831
public void loadsFromModel() {
1932
Model result = Model.assembler()

0 commit comments

Comments
 (0)