Skip to content

Commit 1eb5cc9

Browse files
authored
fix: code smells (#88)
Signed-off-by: Pascal Krause <[email protected]>
1 parent ff40810 commit 1eb5cc9

16 files changed

+71
-92
lines changed

src/main/java/io/vertx/openapi/contract/Operation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import io.vertx.codegen.annotations.Nullable;
1616
import io.vertx.codegen.annotations.VertxGen;
1717
import io.vertx.core.http.HttpMethod;
18-
import io.vertx.core.json.JsonObject;
1918

2019
import java.util.List;
2120

@@ -80,6 +79,7 @@ public interface Operation extends OpenAPIObject {
8079

8180
/**
8281
* Returns the applicable list of security requirements (scopes) or empty list.
82+
*
8383
* @return The related security requirement.
8484
*/
8585
List<SecurityRequirement> getSecurityRequirements();

src/main/java/io/vertx/openapi/contract/impl/OpenAPIContractImpl.java

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import static java.util.stream.Collectors.groupingBy;
4040
import static java.util.stream.Collectors.toList;
4141
import static java.util.stream.Collectors.toMap;
42+
import static java.util.stream.Collectors.toUnmodifiableList;
4243

4344
public class OpenAPIContractImpl implements OpenAPIContract {
4445
private static final String KEY_SERVERS = "servers";
@@ -74,21 +75,17 @@ public OpenAPIContractImpl(JsonObject resolvedSpec, OpenAPIVersion version, Sche
7475
this.version = version;
7576
this.schemaRepository = schemaRepository;
7677

77-
servers = unmodifiableList(
78-
resolvedSpec
79-
.getJsonArray(KEY_SERVERS, EMPTY_JSON_ARRAY)
80-
.stream()
81-
.map(JsonObject.class::cast)
82-
.map(ServerImpl::new)
83-
.collect(toList()));
78+
servers = resolvedSpec
79+
.getJsonArray(KEY_SERVERS, EMPTY_JSON_ARRAY)
80+
.stream()
81+
.map(JsonObject.class::cast)
82+
.map(ServerImpl::new).collect(toUnmodifiableList());
8483

85-
this.securityRequirements = unmodifiableList(
86-
resolvedSpec
87-
.getJsonArray(KEY_SECURITY, EMPTY_JSON_ARRAY)
88-
.stream()
89-
.map(JsonObject.class::cast)
90-
.map(SecurityRequirementImpl::new)
91-
.collect(toList()));
84+
this.securityRequirements = resolvedSpec
85+
.getJsonArray(KEY_SECURITY, EMPTY_JSON_ARRAY)
86+
.stream()
87+
.map(JsonObject.class::cast)
88+
.map(SecurityRequirementImpl::new).collect(toUnmodifiableList());
9289

9390
if (servers.stream().collect(groupingBy(Server::getBasePath)).size() > 1) {
9491
throw createUnsupportedFeature("Different base paths in server urls");
@@ -182,7 +179,7 @@ public String basePath() {
182179

183180
@Override
184181
public List<Operation> operations() {
185-
return unmodifiableList(new ArrayList<>(operations.values()));
182+
return List.copyOf(operations.values());
186183
}
187184

188185
@Override

src/main/java/io/vertx/openapi/contract/impl/OperationImpl.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@
3838
import static io.vertx.openapi.impl.Utils.EMPTY_JSON_OBJECT;
3939
import static java.util.Collections.unmodifiableList;
4040
import static java.util.Collections.unmodifiableMap;
41-
import static java.util.stream.Collectors.toList;
4241
import static java.util.stream.Collectors.toMap;
42+
import static java.util.stream.Collectors.toUnmodifiableList;
4343

4444
public class OperationImpl implements Operation {
4545
private static final Logger LOG = LoggerFactory.getLogger(OperationImpl.class);
@@ -80,16 +80,14 @@ public OperationImpl(String absolutePath, String path, HttpMethod method, JsonOb
8080
this.extensions = unmodifiableMap(allExtensions);
8181

8282
this.tags =
83-
unmodifiableList(operationModel.getJsonArray(KEY_TAGS, EMPTY_JSON_ARRAY).stream().map(Object::toString).collect(
84-
toList()));
83+
operationModel.getJsonArray(KEY_TAGS, EMPTY_JSON_ARRAY).stream().map(Object::toString).collect(toUnmodifiableList());
8584

8685
this.securityRequirements =
8786
operationModel.containsKey(KEY_SECURITY) ?
88-
unmodifiableList(
89-
operationModel.getJsonArray(KEY_SECURITY).stream()
90-
.map(JsonObject.class::cast)
91-
.map(SecurityRequirementImpl::new)
92-
.collect(toList())) :
87+
operationModel.getJsonArray(KEY_SECURITY).stream()
88+
.map(JsonObject.class::cast)
89+
.map(SecurityRequirementImpl::new)
90+
.collect(toUnmodifiableList()) :
9391
globalSecReq;
9492

9593
List<Parameter> operationParameters =

src/main/java/io/vertx/openapi/contract/impl/ResponseImpl.java

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import java.util.List;
2222
import java.util.Map;
2323
import java.util.function.Predicate;
24-
import java.util.stream.Collectors;
2524

2625
import static io.netty.handler.codec.http.HttpHeaderNames.CONTENT_TYPE;
2726
import static io.vertx.openapi.contract.Location.HEADER;
@@ -30,10 +29,10 @@
3029
import static io.vertx.openapi.contract.OpenAPIContractException.createUnsupportedFeature;
3130
import static io.vertx.openapi.impl.Utils.EMPTY_JSON_OBJECT;
3231
import static java.lang.String.join;
33-
import static java.util.Collections.unmodifiableList;
3432
import static java.util.Collections.unmodifiableMap;
3533
import static java.util.function.Function.identity;
3634
import static java.util.stream.Collectors.toMap;
35+
import static java.util.stream.Collectors.toUnmodifiableList;
3736

3837
public class ResponseImpl implements Response {
3938
private static final String KEY_HEADERS = "headers";
@@ -51,18 +50,16 @@ public ResponseImpl(JsonObject responseModel, String operationId) {
5150
this.responseModel = responseModel;
5251

5352
JsonObject headersObject = responseModel.getJsonObject(KEY_HEADERS, EMPTY_JSON_OBJECT);
54-
this.headers = unmodifiableList(
55-
headersObject
56-
.fieldNames()
57-
.stream()
58-
.filter(JsonSchema.EXCLUDE_ANNOTATIONS)
59-
.filter(FILTER_CONTENT_TYPE)
60-
.map(name -> {
61-
JsonObject headerModel = headersObject.getJsonObject(name).copy().put("name", name).put("in",
62-
HEADER.toString());
63-
return new ParameterImpl("", headerModel);
64-
})
65-
.collect(Collectors.toList()));
53+
this.headers = headersObject
54+
.fieldNames()
55+
.stream()
56+
.filter(JsonSchema.EXCLUDE_ANNOTATIONS)
57+
.filter(FILTER_CONTENT_TYPE)
58+
.map(name -> {
59+
JsonObject headerModel = headersObject.getJsonObject(name).copy().put("name", name).put("in",
60+
HEADER.toString());
61+
return new ParameterImpl("", headerModel);
62+
}).collect(toUnmodifiableList());
6663

6764
JsonObject contentObject = responseModel.getJsonObject(KEY_CONTENT, EMPTY_JSON_OBJECT);
6865
this.content = unmodifiableMap(

src/main/java/io/vertx/openapi/contract/impl/SecurityRequirementImpl.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,31 +22,29 @@
2222
import java.util.stream.Collectors;
2323

2424
import static io.vertx.openapi.impl.Utils.EMPTY_JSON_ARRAY;
25-
import static java.util.Collections.*;
25+
import static java.util.Collections.emptyMap;
26+
import static java.util.Collections.emptySet;
27+
import static java.util.Collections.unmodifiableMap;
2628
import static java.util.function.Function.identity;
2729
import static java.util.stream.Collectors.toList;
30+
import static java.util.stream.Collectors.toUnmodifiableSet;
2831

2932
public class SecurityRequirementImpl implements SecurityRequirement {
30-
3133
private final JsonObject securityRequirementModel;
3234
private final Set<String> names;
3335
private final Map<String, List<String>> scopes;
34-
private final boolean empty;
3536

3637
public SecurityRequirementImpl(JsonObject securityRequirementModel) {
3738
this.securityRequirementModel = securityRequirementModel;
38-
this.empty = securityRequirementModel.isEmpty();
3939

4040
if (securityRequirementModel.isEmpty()) {
4141
this.names = emptySet();
4242
this.scopes = emptyMap();
4343
} else {
44-
this.names = unmodifiableSet(
45-
securityRequirementModel
46-
.fieldNames()
47-
.stream()
48-
.filter(JsonSchema.EXCLUDE_ANNOTATIONS)
49-
.collect(Collectors.toSet()));
44+
this.names = securityRequirementModel
45+
.fieldNames()
46+
.stream()
47+
.filter(JsonSchema.EXCLUDE_ANNOTATIONS).collect(toUnmodifiableSet());
5048

5149
this.scopes = unmodifiableMap(
5250
this.names

src/main/java/io/vertx/openapi/validation/RequestUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public static Future<ValidatableRequest> extract(HttpServerRequest request, Oper
6565
* @return A {@link Future} holding the ValidatableRequest.
6666
*/
6767
public static Future<ValidatableRequest> extract(HttpServerRequest request, Operation operation,
68-
Supplier<Future<Buffer>> bodySupplier) {
68+
Supplier<Future<Buffer>> bodySupplier) {
6969
Map<String, RequestParameter> cookies = new HashMap<>();
7070
Map<String, RequestParameter> headers = new HashMap<>();
7171
Map<String, RequestParameter> pathParams = new HashMap<>();
@@ -137,7 +137,7 @@ private static RequestParameter extractQuery(HttpServerRequest request, Paramete
137137
}
138138

139139
private static RequestParameter joinFormValues(Collection<String> formValues, Parameter parameter,
140-
Supplier<RequestParameter> explodedObjectSupplier) {
140+
Supplier<RequestParameter> explodedObjectSupplier) {
141141
if (formValues.isEmpty()) {
142142
return EMPTY;
143143
}
@@ -170,7 +170,7 @@ public static int findPathSegment(String templatePath, String parameterName) {
170170

171171
static String decodeUrl(String encoded) {
172172
try {
173-
return encoded == null ? null : URLDecoder.decode(encoded, StandardCharsets.UTF_8.name());
173+
return encoded == null ? null : URLDecoder.decode(encoded, StandardCharsets.UTF_8);
174174
} catch (Exception e) {
175175
throw new ValidatorException("Can't decode URL value: " + encoded, ILLEGAL_VALUE, e);
176176
}

src/main/java/io/vertx/openapi/validation/analyser/ContentAnalyser.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ public static ContentAnalyser getContentAnalyser(MediaType mediaType, String con
7474
}
7575
}
7676

77-
protected String contentType;
78-
protected Buffer content;
79-
protected ValidationContext requestOrResponse;
77+
protected final String contentType;
78+
protected final Buffer content;
79+
protected final ValidationContext requestOrResponse;
8080

8181
/**
8282
* Creates a new content analyser.

src/main/java/io/vertx/openapi/validation/impl/ValidatedResponseImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ protected static Map<String, ResponseParameter> safeUnmodifiableMap(Map<String,
4646
entry -> entry.getKey().toLowerCase(), Entry::getValue));
4747

4848
return Collections.unmodifiableMap(map == null ? Collections.emptyMap() :
49-
new HashMap<String, ResponseParameter>(lowerCaseHeader) {
49+
new HashMap<>(lowerCaseHeader) {
5050
@Override
5151
public ResponseParameter get(Object key) {
5252
return super.get(key.toString().toLowerCase());

src/test/java/io/vertx/tests/MockHelper.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,11 @@
1212

1313
package io.vertx.tests;
1414

15-
import io.vertx.core.buffer.Buffer;
1615
import io.vertx.json.schema.JsonSchema;
1716
import io.vertx.json.schema.common.dsl.SchemaType;
1817
import io.vertx.openapi.contract.Location;
1918
import io.vertx.openapi.contract.Parameter;
2019
import io.vertx.openapi.contract.Style;
21-
import io.vertx.openapi.validation.ValidatableRequest;
22-
import io.vertx.openapi.validation.impl.RequestParameterImpl;
2320

2421
import static org.mockito.Mockito.mock;
2522
import static org.mockito.Mockito.when;
@@ -30,13 +27,6 @@ private MockHelper() {
3027

3128
}
3229

33-
public static ValidatableRequest mockValidatableRequest(Buffer body, String contentType) {
34-
ValidatableRequest mockedRequest = mock(ValidatableRequest.class);
35-
when(mockedRequest.getBody()).thenReturn(new RequestParameterImpl(body));
36-
when(mockedRequest.getContentType()).thenReturn(contentType);
37-
return mockedRequest;
38-
}
39-
4030
public static Parameter mockParameter(String name, Location in, Style style, boolean explode, JsonSchema schema) {
4131
return mockParameter(name, in, style, explode, schema, false);
4232
}

src/test/java/io/vertx/tests/contract/OpenAPIContractTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,8 @@ void testValidJsonSchemaProvidedAsAdditionalSpecFiles(Vertx vertx, VertxTestCont
165165
JsonObject validComponents = loadJson(vertx, resourcePath.resolve("components.json"));
166166

167167
Map<String, JsonObject> additionalValidSpecFiles = ImmutableMap.of("https://example.com/petstore", validComponents);
168-
Map<String, JsonObject> additionalInvalidSpecFiles = ImmutableMap.of("https://example.com/petstore", invalidComponents);
168+
Map<String, JsonObject> additionalInvalidSpecFiles = ImmutableMap.of("https://example.com/petstore",
169+
invalidComponents);
169170

170171
OpenAPIContract.from(vertx, contract.copy(), additionalValidSpecFiles)
171172
.compose(validResp -> Future.succeededFuture(validResp.getRawContract()))
@@ -185,7 +186,8 @@ void testMalformedJsonSchemaProvidedAsAdditionalSpecFiles(Vertx vertx, VertxTest
185186
JsonObject contract = loadJson(vertx, resourcePath.resolve("petstore.json"));
186187
JsonObject malformedComponents = loadJson(vertx, resourcePath.resolve("malformedComponents.json"));
187188

188-
Map<String, JsonObject> additionalMalformedSpecFiles = ImmutableMap.of("https://example.com/petstore", malformedComponents);
189+
Map<String, JsonObject> additionalMalformedSpecFiles = ImmutableMap.of("https://example.com/petstore",
190+
malformedComponents);
189191

190192
OpenAPIContract.from(vertx, contract.copy(), additionalMalformedSpecFiles)
191193
.onComplete(handler -> testContext.verify(() -> {
@@ -208,12 +210,10 @@ public void testAdditionalSchemaFiles(Vertx vertx, VertxTestContext testContext)
208210

209211
Map<String, String> additionalSpecFiles = ImmutableMap.of("https://schemas/Name.yaml", componentsPath.toString());
210212
OpenAPIContract.from(vertx, contractPath.toString(), additionalSpecFiles)
211-
.onComplete(testContext.succeeding(c -> {
212-
testContext.verify(() -> {
213-
assertThat(c.getRawContract().toString()).isEqualTo(dereferenced.toString());
214-
testContext.completeNow();
215-
});
216-
}));
213+
.onComplete(testContext.succeeding(c -> testContext.verify(() -> {
214+
assertThat(c.getRawContract().toString()).isEqualTo(dereferenced.toString());
215+
testContext.completeNow();
216+
})));
217217
}
218218

219219
}

0 commit comments

Comments
 (0)