Skip to content

Commit 3badf50

Browse files
committed
Fix several issues with IAM trait classes
This commit foremost fixes an issue where the toNode method on ActionResources does not function properly, omitting all values instead. It also updates several type signatures for SmithyBuilder generic type responses to use the specific implementation of the interface. It also includes an simplification of the createNode method for the defineConditionKeys trait.
1 parent dcfdc3a commit 3badf50

File tree

6 files changed

+13
-14
lines changed

6 files changed

+13
-14
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public Node toNode() {
6060
}
6161

6262
@Override
63-
public SmithyBuilder<ActionResource> toBuilder() {
63+
public Builder toBuilder() {
6464
return builder().conditionKeys(conditionKeys);
6565
}
6666

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,18 +79,20 @@ public Node toNode() {
7979
for (Map.Entry<String, ActionResource> requiredEntry : required.entrySet()) {
8080
requiredBuilder.withMember(requiredEntry.getKey(), requiredEntry.getValue().toNode());
8181
}
82+
builder.withMember(REQUIRED, requiredBuilder.build());
8283
}
8384
if (!optional.isEmpty()) {
8485
ObjectNode.Builder optionalBuilder = Node.objectNodeBuilder();
8586
for (Map.Entry<String, ActionResource> optionalEntry : optional.entrySet()) {
8687
optionalBuilder.withMember(optionalEntry.getKey(), optionalEntry.getValue().toNode());
8788
}
89+
builder.withMember(OPTIONAL, optionalBuilder.build());
8890
}
8991
return builder.build();
9092
}
9193

9294
@Override
93-
public SmithyBuilder<ActionResources> toBuilder() {
95+
public Builder toBuilder() {
9496
return builder().required(required).optional(optional);
9597
}
9698

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public boolean isRequired() {
108108
}
109109

110110
@Override
111-
public SmithyBuilder<ConditionKeyDefinition> toBuilder() {
111+
public Builder toBuilder() {
112112
return builder()
113113
.documentation(documentation)
114114
.externalDocumentation(externalDocumentation)

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

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
package software.amazon.smithy.aws.iam.traits;
1717

18-
import java.util.AbstractMap;
1918
import java.util.HashMap;
2019
import java.util.Map;
2120
import java.util.Optional;
@@ -78,19 +77,19 @@ public Map<String, ConditionKeyDefinition> getConditionKeys() {
7877
* Get a specific condition key by name.
7978
*
8079
* @param name Name of the condition key to get.
81-
* @return Returns the optionall found condition key.
80+
* @return Returns the optionally found condition key.
8281
*/
8382
public Optional<ConditionKeyDefinition> getConditionKey(String name) {
8483
return Optional.ofNullable(conditionKeys.get(name));
8584
}
8685

8786
@Override
8887
protected Node createNode() {
89-
return conditionKeys.entrySet().stream()
90-
.map(entry -> new AbstractMap.SimpleImmutableEntry<>(
91-
Node.from(entry.getKey()), entry.getValue().toNode()))
92-
.collect(ObjectNode.collect(Map.Entry::getKey, Map.Entry::getValue))
93-
.toBuilder().sourceLocation(getSourceLocation()).build();
88+
ObjectNode.Builder builder = ObjectNode.builder().sourceLocation(getSourceLocation());
89+
for (Map.Entry<String, ConditionKeyDefinition> entry : conditionKeys.entrySet()) {
90+
builder.withMember(entry.getKey(), entry.getValue().toNode());
91+
}
92+
return builder.build();
9493
}
9594

9695
@Override

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import software.amazon.smithy.utils.BuilderRef;
2929
import software.amazon.smithy.utils.FunctionalUtils;
3030
import software.amazon.smithy.utils.ListUtils;
31-
import software.amazon.smithy.utils.SmithyBuilder;
3231
import software.amazon.smithy.utils.ToSmithyBuilder;
3332

3433
/**
@@ -191,7 +190,7 @@ protected Node createNode() {
191190
}
192191

193192
@Override
194-
public SmithyBuilder<IamActionTrait> toBuilder() {
193+
public Builder toBuilder() {
195194
return builder().sourceLocation(getSourceLocation()).name(name);
196195
}
197196

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import software.amazon.smithy.model.traits.AbstractTrait;
2424
import software.amazon.smithy.model.traits.AbstractTraitBuilder;
2525
import software.amazon.smithy.model.traits.Trait;
26-
import software.amazon.smithy.utils.SmithyBuilder;
2726
import software.amazon.smithy.utils.ToSmithyBuilder;
2827

2928
/**
@@ -106,7 +105,7 @@ protected Node createNode() {
106105
}
107106

108107
@Override
109-
public SmithyBuilder<IamResourceTrait> toBuilder() {
108+
public Builder toBuilder() {
110109
return builder().sourceLocation(getSourceLocation()).name(name);
111110
}
112111

0 commit comments

Comments
 (0)