Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
package software.amazon.smithy.aws.apigateway.traits;

import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
Expand All @@ -16,7 +15,7 @@
import software.amazon.smithy.model.traits.AbstractTrait;
import software.amazon.smithy.model.traits.AbstractTraitBuilder;
import software.amazon.smithy.model.traits.Trait;
import software.amazon.smithy.utils.MapUtils;
import software.amazon.smithy.utils.BuilderRef;
import software.amazon.smithy.utils.ToSmithyBuilder;

/**
Expand All @@ -40,7 +39,7 @@ public final class AuthorizersTrait extends AbstractTrait implements ToSmithyBui

private AuthorizersTrait(Builder builder) {
super(ID, builder.getSourceLocation());
authorizers = MapUtils.copyOf(builder.authorizers);
authorizers = builder.authorizers.copy();
}

public static final class Provider extends AbstractTrait.Provider {
Expand Down Expand Up @@ -110,7 +109,7 @@ protected Node createNode() {
* Builds an {@link AuthorizersTrait}.
*/
public static final class Builder extends AbstractTraitBuilder<AuthorizersTrait, Builder> {
private final Map<String, AuthorizerDefinition> authorizers = new HashMap<>();
private final BuilderRef<Map<String, AuthorizerDefinition>> authorizers = BuilderRef.forOrderedMap();

@Override
public AuthorizersTrait build() {
Expand All @@ -125,7 +124,7 @@ public AuthorizersTrait build() {
* @return Returns the builder.
*/
public Builder putAuthorizer(String name, AuthorizerDefinition authorizer) {
authorizers.put(name, Objects.requireNonNull(authorizer));
authorizers.get().put(name, Objects.requireNonNull(authorizer));
return this;
}

Expand All @@ -148,7 +147,7 @@ public Builder authorizers(Map<String, AuthorizerDefinition> authorizers) {
* @return Returns the builder.
*/
public Builder removeAuthorizer(String name) {
authorizers.remove(name);
authorizers.get().remove(name);
return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,13 @@
*/
package software.amazon.smithy.aws.apigateway.traits;

import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import software.amazon.smithy.model.FromSourceLocation;
import software.amazon.smithy.model.node.Node;
import software.amazon.smithy.model.node.NodeMapper;
import software.amazon.smithy.model.node.ToNode;
import software.amazon.smithy.utils.MapUtils;
import software.amazon.smithy.utils.BuilderRef;
import software.amazon.smithy.utils.SmithyBuilder;
import software.amazon.smithy.utils.ToSmithyBuilder;

Expand All @@ -31,8 +30,8 @@ public final class IntegrationResponse implements ToNode, ToSmithyBuilder<Integr
private IntegrationResponse(Builder builder) {
statusCode = SmithyBuilder.requiredState("statusCode", builder.statusCode);
contentHandling = builder.contentHandling;
responseTemplates = MapUtils.copyOf(builder.responseTemplates);
responseParameters = MapUtils.copyOf(builder.responseParameters);
responseTemplates = builder.responseTemplates.copy();
responseParameters = builder.responseParameters.copy();
sourceLocation = builder.sourceLocation;
}

Expand Down Expand Up @@ -151,8 +150,8 @@ public int hashCode() {
public static final class Builder implements SmithyBuilder<IntegrationResponse> {
private String statusCode;
private String contentHandling;
private Map<String, String> responseTemplates = new HashMap<>();
private Map<String, String> responseParameters = new HashMap<>();
private final BuilderRef<Map<String, String>> responseTemplates = BuilderRef.forSortedMap();
private final BuilderRef<Map<String, String>> responseParameters = BuilderRef.forSortedMap();
private FromSourceLocation sourceLocation;

@Override
Expand Down Expand Up @@ -193,7 +192,7 @@ public Builder contentHandling(String contentHandling) {
*/
public Builder responseTemplates(Map<String, String> responseTemplates) {
this.responseTemplates.clear();
this.responseTemplates.putAll(responseTemplates);
responseTemplates.forEach(this::putResponseTemplate);
return this;
}

Expand All @@ -206,7 +205,7 @@ public Builder responseTemplates(Map<String, String> responseTemplates) {
* @see IntegrationResponse#getResponseTemplates()
*/
public Builder putResponseTemplate(String mimeType, String template) {
responseTemplates.put(mimeType, template);
responseTemplates.get().put(mimeType, template);
return this;
}

Expand All @@ -217,7 +216,7 @@ public Builder putResponseTemplate(String mimeType, String template) {
* @return Returns the builder.
*/
public Builder removeResponseTemplate(String mimeType) {
responseTemplates.remove(mimeType);
responseTemplates.get().remove(mimeType);
return this;
}

Expand All @@ -230,7 +229,7 @@ public Builder removeResponseTemplate(String mimeType) {
*/
public Builder responseParameters(Map<String, String> responseParameters) {
this.responseParameters.clear();
this.responseParameters.putAll(responseParameters);
responseParameters.forEach(this::putResponseParameter);
return this;
}

Expand All @@ -243,7 +242,7 @@ public Builder responseParameters(Map<String, String> responseParameters) {
* @see IntegrationResponse#getResponseParameters()
*/
public Builder putResponseParameter(String name, String value) {
responseParameters.put(name, value);
responseParameters.get().put(name, value);
return this;
}

Expand All @@ -254,7 +253,7 @@ public Builder putResponseParameter(String name, String value) {
* @return Returns the builder.
*/
public Builder removeResponseParameter(String name) {
responseParameters.remove(name);
responseParameters.get().remove(name);
return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
*/
package software.amazon.smithy.aws.apigateway.traits;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
Expand All @@ -17,8 +15,7 @@
import software.amazon.smithy.model.traits.AbstractTrait;
import software.amazon.smithy.model.traits.AbstractTraitBuilder;
import software.amazon.smithy.model.traits.Trait;
import software.amazon.smithy.utils.ListUtils;
import software.amazon.smithy.utils.MapUtils;
import software.amazon.smithy.utils.BuilderRef;
import software.amazon.smithy.utils.SmithyBuilder;
import software.amazon.smithy.utils.ToSmithyBuilder;

Expand Down Expand Up @@ -64,10 +61,10 @@ private IntegrationTrait(Builder builder) {
connectionType = builder.connectionType;
cacheNamespace = builder.cacheNamespace;
payloadFormatVersion = builder.payloadFormatVersion;
cacheKeyParameters = ListUtils.copyOf(builder.cacheKeyParameters);
requestParameters = MapUtils.copyOf(builder.requestParameters);
requestTemplates = MapUtils.copyOf(builder.requestTemplates);
responses = MapUtils.copyOf(builder.responses);
cacheKeyParameters = builder.cacheKeyParameters.copy();
requestParameters = builder.requestParameters.copy();
requestTemplates = builder.requestTemplates.copy();
responses = builder.responses.copy();
}

public static final class Provider extends AbstractTrait.Provider {
Expand Down Expand Up @@ -369,10 +366,10 @@ public static final class Builder extends AbstractTraitBuilder<IntegrationTrait,
private String connectionType;
private String cacheNamespace;
private String payloadFormatVersion;
private final List<String> cacheKeyParameters = new ArrayList<>();
private final Map<String, String> requestParameters = new HashMap<>();
private final Map<String, String> requestTemplates = new HashMap<>();
private final Map<String, IntegrationResponse> responses = new HashMap<>();
private final BuilderRef<List<String>> cacheKeyParameters = BuilderRef.forList();
private final BuilderRef<Map<String, String>> requestParameters = BuilderRef.forOrderedMap();
private final BuilderRef<Map<String, String>> requestTemplates = BuilderRef.forOrderedMap();
private final BuilderRef<Map<String, IntegrationResponse>> responses = BuilderRef.forOrderedMap();

@Override
public IntegrationTrait build() {
Expand Down Expand Up @@ -523,7 +520,7 @@ public Builder payloadFormatVersion(String payloadFormatVersion) {
* @return Returns the builder.
*/
public Builder addCacheKeyParameter(String cacheKeyParameter) {
this.cacheKeyParameters.add(cacheKeyParameter);
this.cacheKeyParameters.get().add(cacheKeyParameter);
return this;
}

Expand All @@ -535,7 +532,7 @@ public Builder addCacheKeyParameter(String cacheKeyParameter) {
*/
public Builder cacheKeyParameters(List<String> cacheKeyParameters) {
this.cacheKeyParameters.clear();
this.cacheKeyParameters.addAll(cacheKeyParameters);
cacheKeyParameters.forEach(this::addCacheKeyParameter);
return this;
}

Expand All @@ -546,7 +543,7 @@ public Builder cacheKeyParameters(List<String> cacheKeyParameters) {
* @return Returns the builder.
*/
public Builder removeCacheKeyParameter(String cacheKeyParameter) {
this.cacheKeyParameters.remove(cacheKeyParameter);
this.cacheKeyParameters.get().remove(cacheKeyParameter);
return this;
}

Expand All @@ -569,7 +566,7 @@ public Builder clearCacheKeyParameters() {
* @see IntegrationTrait#getRequestParameters()
*/
public Builder putRequestParameter(String input, String output) {
requestParameters.put(input, output);
requestParameters.get().put(input, output);
return this;
}

Expand All @@ -582,7 +579,7 @@ public Builder putRequestParameter(String input, String output) {
*/
public Builder requestParameters(Map<String, String> requestParameters) {
this.requestParameters.clear();
this.requestParameters.putAll(requestParameters);
requestParameters.forEach(this::putRequestParameter);
return this;
}

Expand All @@ -593,7 +590,7 @@ public Builder requestParameters(Map<String, String> requestParameters) {
* @return Returns the builder.
*/
public Builder removeRequestParameter(String expression) {
requestParameters.remove(expression);
requestParameters.get().remove(expression);
return this;
}

Expand All @@ -606,7 +603,7 @@ public Builder removeRequestParameter(String expression) {
* @see IntegrationTrait#getRequestTemplates()
*/
public Builder putRequestTemplate(String mimeType, String template) {
requestTemplates.put(mimeType, template);
requestTemplates.get().put(mimeType, template);
return this;
}

Expand All @@ -619,7 +616,7 @@ public Builder putRequestTemplate(String mimeType, String template) {
*/
public Builder requestTemplates(Map<String, String> requestTemplates) {
this.requestTemplates.clear();
this.requestTemplates.putAll(requestTemplates);
requestTemplates.forEach(this::putRequestTemplate);
return this;
}

Expand All @@ -630,7 +627,7 @@ public Builder requestTemplates(Map<String, String> requestTemplates) {
* @return Returns the builder.
*/
public Builder removeRequestTemplate(String mimeType) {
requestTemplates.remove(mimeType);
requestTemplates.get().remove(mimeType);
return this;
}

Expand All @@ -643,7 +640,7 @@ public Builder removeRequestTemplate(String mimeType) {
* @see IntegrationTrait#getResponses()
*/
public Builder putResponse(String statusCodeRegex, IntegrationResponse integrationResponse) {
responses.put(statusCodeRegex, integrationResponse);
responses.get().put(statusCodeRegex, integrationResponse);
return this;
}

Expand All @@ -656,7 +653,7 @@ public Builder putResponse(String statusCodeRegex, IntegrationResponse integrati
*/
public Builder responses(Map<String, IntegrationResponse> responses) {
this.responses.clear();
this.responses.putAll(responses);
responses.forEach(this::putResponse);
return this;
}

Expand All @@ -667,7 +664,7 @@ public Builder responses(Map<String, IntegrationResponse> responses) {
* @return Returns the builder.
*/
public Builder removeResponse(String statusCodeRegex) {
responses.remove(statusCodeRegex);
responses.get().remove(statusCodeRegex);
return this;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
*/
package software.amazon.smithy.aws.apigateway.traits;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
Expand All @@ -15,7 +16,6 @@
import software.amazon.smithy.model.shapes.ShapeId;
import software.amazon.smithy.model.shapes.ToShapeId;
import software.amazon.smithy.model.traits.Trait;
import software.amazon.smithy.utils.MapUtils;

/**
* Computes the API Gateway integration for each operation,
Expand Down Expand Up @@ -48,7 +48,7 @@ public static IntegrationTraitIndex of(Model model) {
* @return The integration trait or an empty optional if none set
*/
public Optional<Trait> getIntegrationTrait(ToShapeId service, ToShapeId shape) {
return Optional.ofNullable(traits.getOrDefault(service.toShapeId(), MapUtils.of())
return Optional.ofNullable(traits.getOrDefault(service.toShapeId(), Collections.emptyMap())
.get(shape.toShapeId()));
}

Expand Down
Loading
Loading