Skip to content

Commit f9aa14d

Browse files
Restore mutability to previously mutable properties
1 parent 6b53a37 commit f9aa14d

13 files changed

Lines changed: 41 additions & 30 deletions

File tree

smithy-aws-cloudformation-traits/src/main/java/software/amazon/smithy/aws/cloudformation/traits/CfnResourceProperty.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package software.amazon.smithy.aws.cloudformation.traits;
66

77
import java.util.Set;
8+
import java.util.TreeSet;
89
import software.amazon.smithy.aws.cloudformation.traits.CfnResourceIndex.Mutability;
910
import software.amazon.smithy.model.shapes.ShapeId;
1011
import software.amazon.smithy.utils.BuilderRef;
@@ -20,7 +21,7 @@ public final class CfnResourceProperty implements ToSmithyBuilder<CfnResourcePro
2021
private final boolean hasExplicitMutability;
2122

2223
private CfnResourceProperty(Builder builder) {
23-
shapeIds = builder.shapeIds.copy();
24+
shapeIds = new TreeSet<>(builder.shapeIds.peek());
2425
mutabilities = builder.mutabilities.copy();
2526
hasExplicitMutability = builder.hasExplicitMutability;
2627
}

smithy-aws-cloudformation/src/main/java/software/amazon/smithy/aws/cloudformation/schema/model/Property.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ private Property(Builder builder) {
4343
}
4444

4545
if (!builder.dependencies.peek().isEmpty()) {
46-
schemaBuilder.putExtension("dependencies", Node.fromStrings(builder.dependencies.copy()));
46+
schemaBuilder.putExtension("dependencies", Node.fromStrings(builder.dependencies.peek()));
4747
}
4848

4949
this.schema = schemaBuilder.build();

smithy-aws-cloudformation/src/main/java/software/amazon/smithy/aws/cloudformation/schema/model/Remote.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package software.amazon.smithy.aws.cloudformation.schema.model;
66

77
import java.util.Map;
8+
import java.util.TreeMap;
89
import software.amazon.smithy.jsonschema.Schema;
910
import software.amazon.smithy.model.node.Node;
1011
import software.amazon.smithy.model.node.NodeMapper;
@@ -25,8 +26,8 @@ public final class Remote implements ToNode, ToSmithyBuilder<Remote> {
2526
private final Map<String, Property> properties;
2627

2728
private Remote(Builder builder) {
28-
definitions = builder.definitions.copy();
29-
properties = builder.properties.copy();
29+
definitions = new TreeMap<>(builder.definitions.copy());
30+
properties = new TreeMap<>(builder.properties.copy());
3031
}
3132

3233
@Override

smithy-aws-cloudformation/src/main/java/software/amazon/smithy/aws/cloudformation/schema/model/ResourceSchema.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import java.util.Map;
1313
import java.util.Optional;
1414
import java.util.Set;
15+
import java.util.TreeMap;
16+
import java.util.TreeSet;
1517
import software.amazon.smithy.aws.cloudformation.schema.CfnException;
1618
import software.amazon.smithy.jsonschema.Schema;
1719
import software.amazon.smithy.model.node.Node;
@@ -60,15 +62,15 @@ private ResourceSchema(Builder builder) {
6062
required = builder.required.copy();
6163
sourceUrl = builder.sourceUrl;
6264
documentationUrl = builder.documentationUrl;
63-
definitions = builder.definitions.copy();
64-
readOnlyProperties = builder.readOnlyProperties.copy();
65-
writeOnlyProperties = builder.writeOnlyProperties.copy();
66-
primaryIdentifier = builder.primaryIdentifier.copy();
67-
createOnlyProperties = builder.createOnlyProperties.copy();
68-
deprecatedProperties = builder.deprecatedProperties.copy();
65+
definitions = new TreeMap<>(builder.definitions.peek());
66+
readOnlyProperties = new TreeSet<>(builder.readOnlyProperties.peek());
67+
writeOnlyProperties = new TreeSet<>(builder.writeOnlyProperties.peek());
68+
primaryIdentifier = new TreeSet<>(builder.primaryIdentifier.peek());
69+
createOnlyProperties = new TreeSet<>(builder.createOnlyProperties.peek());
70+
deprecatedProperties = new TreeSet<>(builder.deprecatedProperties.peek());
6971
additionalIdentifiers = builder.additionalIdentifiers.copy();
70-
handlers = builder.handlers.copy();
71-
remotes = builder.remotes.copy();
72+
handlers = new TreeMap<>(builder.handlers.peek());
73+
remotes = new TreeMap<>(builder.remotes.peek());
7274
tagging = builder.tagging;
7375
additionalProperties = builder.additionalProperties;
7476
}

smithy-jsonschema/src/main/java/software/amazon/smithy/jsonschema/JsonSchemaConverter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public final class JsonSchemaConverter implements ToSmithyBuilder<JsonSchemaConv
5959
private final boolean unitTargetedByUnion;
6060

6161
private JsonSchemaConverter(Builder builder) {
62-
mappers = builder.mappers.copy();
62+
mappers = new ArrayList<>(builder.mappers.peek());
6363
config = SmithyBuilder.requiredState("config", builder.config);
6464
propertyNamingStrategy = SmithyBuilder.requiredState("propertyNamingStrategy", builder.propertyNamingStrategy);
6565

smithy-jsonschema/src/main/java/software/amazon/smithy/jsonschema/Schema.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.util.Arrays;
88
import java.util.Collection;
99
import java.util.Collections;
10+
import java.util.LinkedHashMap;
1011
import java.util.List;
1112
import java.util.Map;
1213
import java.util.Objects;
@@ -130,13 +131,13 @@ private Schema(Builder builder) {
130131
minItems = builder.minItems;
131132
uniqueItems = builder.uniqueItems;
132133

133-
properties = builder.properties.copy();
134+
properties = new LinkedHashMap<>(builder.properties.peek());
134135
additionalProperties = builder.additionalProperties;
135136
required = builder.required.copy();
136137
maxProperties = builder.maxProperties;
137138
minProperties = builder.minProperties;
138139
propertyNames = builder.propertyNames;
139-
patternProperties = builder.patternProperties.copy();
140+
patternProperties = new LinkedHashMap<>(builder.patternProperties.peek());
140141

141142
allOf = builder.allOf.copy();
142143
oneOf = builder.oneOf.copy();

smithy-openapi/src/main/java/software/amazon/smithy/openapi/model/Component.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public abstract static class Builder<B extends Builder, C extends Component> imp
7575
private final BuilderRef<Map<String, Node>> extensions = BuilderRef.forSortedMap();
7676

7777
public Map<String, Node> getExtensions() {
78-
return extensions.copy();
78+
return extensions.get();
7979
}
8080

8181
@SuppressWarnings("unchecked")

smithy-openapi/src/main/java/software/amazon/smithy/openapi/model/ComponentsObject.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package software.amazon.smithy.openapi.model;
66

77
import java.util.Map;
8+
import java.util.TreeMap;
89
import software.amazon.smithy.jsonschema.Schema;
910
import software.amazon.smithy.model.node.Node;
1011
import software.amazon.smithy.model.node.ObjectNode;
@@ -23,14 +24,14 @@ public final class ComponentsObject extends Component implements ToSmithyBuilder
2324

2425
private ComponentsObject(Builder builder) {
2526
super(builder);
26-
schemas = builder.schemas.copy();
27-
responses = builder.responses.copy();
28-
parameters = builder.parameters.copy();
29-
requestBodies = builder.requestBodies.copy();
30-
headers = builder.headers.copy();
31-
securitySchemes = builder.securitySchemes.copy();
32-
links = builder.links.copy();
33-
callbacks = builder.callbacks.copy();
27+
schemas = new TreeMap<>(builder.schemas.peek());
28+
responses = new TreeMap<>(builder.responses.peek());
29+
parameters = new TreeMap<>(builder.parameters.peek());
30+
requestBodies = new TreeMap<>(builder.requestBodies.peek());
31+
headers = new TreeMap<>(builder.headers.peek());
32+
securitySchemes = new TreeMap<>(builder.securitySchemes.peek());
33+
links = new TreeMap<>(builder.links.peek());
34+
callbacks = new TreeMap<>(builder.callbacks.peek());
3435
}
3536

3637
public static Builder builder() {

smithy-openapi/src/main/java/software/amazon/smithy/openapi/model/EncodingObject.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import java.util.Map;
88
import java.util.Optional;
9+
import java.util.TreeMap;
910
import software.amazon.smithy.model.node.Node;
1011
import software.amazon.smithy.model.node.ObjectNode;
1112
import software.amazon.smithy.utils.BuilderRef;
@@ -20,7 +21,7 @@ public final class EncodingObject extends Component implements ToSmithyBuilder<E
2021

2122
private EncodingObject(Builder builder) {
2223
super(builder);
23-
headers = builder.headers.copy();
24+
headers = new TreeMap<>(builder.headers.peek());
2425
contentType = builder.contentType;
2526
style = builder.style;
2627
explode = builder.explode;

smithy-openapi/src/main/java/software/amazon/smithy/openapi/model/LinkObject.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import java.util.Map;
88
import java.util.Optional;
9+
import java.util.TreeMap;
910
import software.amazon.smithy.model.node.Node;
1011
import software.amazon.smithy.model.node.ObjectNode;
1112
import software.amazon.smithy.utils.BuilderRef;
@@ -21,7 +22,7 @@ public final class LinkObject extends Component implements ToSmithyBuilder<LinkO
2122

2223
private LinkObject(Builder builder) {
2324
super(builder);
24-
parameters = builder.parameters.copy();
25+
parameters = new TreeMap<>(builder.parameters.peek());
2526
operationId = builder.operationId;
2627
operationRef = builder.operationRef;
2728
requestBody = builder.requestBody;

0 commit comments

Comments
 (0)