Skip to content

Commit b1148fb

Browse files
author
jpfinne
committed
Fix extra spaces
1 parent 4f2fdbc commit b1148fb

25 files changed

Lines changed: 195 additions & 141 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,7 @@ protected ImmutableMap.Builder<String, Lambda> addMustacheLambdas() {
463463
.put("indented_8", new IndentedLambda(8, " ", false, false))
464464
.put("indented_12", new IndentedLambda(12, " ", false, false))
465465
.put("indented_16", new IndentedLambda(16, " ", false, false))
466+
.put("trim", new TrimLambda())
466467
.put("trimLineBreaks", new TrimLineBreaksLambda())
467468
.put("trimWhitespace", new TrimWhitespaceLambda())
468469
.put("trimTrailingWithNewLine", new TrimTrailingWhiteSpaceLambda(true))

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2694,8 +2694,13 @@ protected ImmutableMap.Builder<String, Mustache.Lambda> addMustacheLambdas() {
26942694
writer.write("@Nullable ");
26952695
writer.write(dataType.substring(idx + 1));
26962696
} else {
2697-
writer.write("@Nullable ");
2698-
writer.write(dataType);
2697+
if (dataType.startsWith(" ")) {
2698+
writer.write(" @Nullable");
2699+
writer.write(dataType);
2700+
} else {
2701+
writer.write("@Nullable ");
2702+
writer.write(dataType);
2703+
}
26992704
}
27002705
} else {
27012706
writer.write(dataType);
@@ -2727,10 +2732,6 @@ public void execute(Template.Fragment fragment, Writer writer) throws IOExceptio
27272732
if (value.startsWith(nullableAnnotation)) {
27282733
keptNullable = true;
27292734
int idx = nullableAnnotation.length();
2730-
// trim left
2731-
while (idx < value.length() && value.charAt(idx) == ' ') {
2732-
idx ++;
2733-
}
27342735
value = value.substring(idx);
27352736
}
27362737
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.openapitools.codegen.templating.mustache;
18+
19+
import com.samskivert.mustache.Mustache;
20+
import com.samskivert.mustache.Template.Fragment;
21+
22+
import java.io.IOException;
23+
import java.io.Writer;
24+
25+
/**
26+
* Remove leading and trailing spaces
27+
* <p>
28+
* Register:
29+
* <pre>
30+
* additionalProperties.put("trim", new TrimLambda());
31+
* </pre>
32+
* <p>
33+
* Use:
34+
* <pre>
35+
* {{#trim}}{{name}}{{/trim}}
36+
* </pre>
37+
*/
38+
public class TrimLambda implements Mustache.Lambda {
39+
40+
@Override
41+
public void execute(Fragment fragment, Writer writer) throws IOException {
42+
writer.write(fragment.execute().trim());
43+
}
44+
}

modules/openapi-generator/src/main/resources/Java/libraries/native/api.mustache

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ public class {{classname}} {
265265
public {{#returnType}}{{#asyncNative}}CompletableFuture<{{{returnType}}}>{{/asyncNative}}{{^asyncNative}}{{{returnType}}}{{/asyncNative}}{{/returnType}}{{^returnType}}{{#asyncNative}}CompletableFuture<Void>{{/asyncNative}}{{^asyncNative}}void{{/asyncNative}}{{/returnType}} {{operationId}}(API{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request apiRequest, Map<String, String> headers) throws ApiException {
266266
{{#allParams}}
267267
{{>nullable_var_annotations}}{{! prevent indent}}
268-
{{#lambda.jSpecifyDatatype}}{{{dataType}}}{{/lambda.jSpecifyDatatype}} {{paramName}} = apiRequest.{{paramName}}();
268+
{{>nullableDataType}} {{paramName}} = apiRequest.{{paramName}}();
269269
{{/allParams}}
270270
{{#returnType}}return {{/returnType}}{{^returnType}}{{#asyncNative}}return {{/asyncNative}}{{/returnType}}{{operationId}}({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers);
271271
}
@@ -344,7 +344,7 @@ public class {{classname}} {
344344
{{#isDeprecated}}
345345
@Deprecated
346346
{{/isDeprecated}}
347-
public {{#returnType}}{{#asyncNative}}CompletableFuture<{{{returnType}}}>{{/asyncNative}}{{^asyncNative}}{{{returnType}}}{{/asyncNative}}{{/returnType}}{{^returnType}}{{#asyncNative}}CompletableFuture<Void>{{/asyncNative}}{{^asyncNative}}void{{/asyncNative}}{{/returnType}} {{operationId}}({{#allParams}}{{>nullable_var_annotations}} {{#lambda.jSpecifyDatatype}}{{{dataType}}}{{/lambda.jSpecifyDatatype}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException {
347+
public {{#returnType}}{{#asyncNative}}CompletableFuture<{{{returnType}}}>{{/asyncNative}}{{^asyncNative}}{{{returnType}}}{{/asyncNative}}{{/returnType}}{{^returnType}}{{#asyncNative}}CompletableFuture<Void>{{/asyncNative}}{{^asyncNative}}void{{/asyncNative}}{{/returnType}} {{operationId}}({{#allParams}}{{>nullableArgument}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException {
348348
{{#returnType}}return {{/returnType}}{{^returnType}}{{#asyncNative}}return {{/asyncNative}}{{/returnType}}{{operationId}}({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}null);
349349
}
350350

@@ -375,7 +375,7 @@ public class {{classname}} {
375375
{{#isDeprecated}}
376376
@Deprecated
377377
{{/isDeprecated}}
378-
public {{#returnType}}{{#asyncNative}}CompletableFuture<{{{returnType}}}>{{/asyncNative}}{{^asyncNative}}{{{returnType}}}{{/asyncNative}}{{/returnType}}{{^returnType}}{{#asyncNative}}CompletableFuture<Void>{{/asyncNative}}{{^asyncNative}}void{{/asyncNative}}{{/returnType}} {{operationId}}({{#allParams}}{{>nullable_var_annotations}} {{#lambda.jSpecifyDatatype}}{{{dataType}}}{{/lambda.jSpecifyDatatype}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}Map<String, String> headers) throws ApiException {
378+
public {{#returnType}}{{#asyncNative}}CompletableFuture<{{{returnType}}}>{{/asyncNative}}{{^asyncNative}}{{{returnType}}}{{/asyncNative}}{{/returnType}}{{^returnType}}{{#asyncNative}}CompletableFuture<Void>{{/asyncNative}}{{^asyncNative}}void{{/asyncNative}}{{/returnType}} {{operationId}}({{#allParams}}{{>nullableArgument}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}Map<String, String> headers) throws ApiException {
379379
{{^asyncNative}}
380380
{{#returnType}}ApiResponse<{{{.}}}> localVarResponse = {{/returnType}}{{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers);
381381
{{#returnType}}
@@ -412,7 +412,7 @@ public class {{classname}} {
412412
{{#isDeprecated}}
413413
@Deprecated
414414
{{/isDeprecated}}
415-
public {{#asyncNative}}CompletableFuture<{{/asyncNative}}ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}>{{#asyncNative}}>{{/asyncNative}} {{operationId}}WithHttpInfo({{#allParams}}{{>nullable_var_annotations}} {{#lambda.jSpecifyDatatype}}{{{dataType}}}{{/lambda.jSpecifyDatatype}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException {
415+
public {{#asyncNative}}CompletableFuture<{{/asyncNative}}ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}>{{#asyncNative}}>{{/asyncNative}} {{operationId}}WithHttpInfo({{#allParams}}{{>nullableArgument}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException {
416416
return {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}null);
417417
}
418418

@@ -436,7 +436,7 @@ public class {{classname}} {
436436
{{#isDeprecated}}
437437
@Deprecated
438438
{{/isDeprecated}}
439-
public {{#asyncNative}}CompletableFuture<{{/asyncNative}}ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}>{{#asyncNative}}>{{/asyncNative}} {{operationId}}WithHttpInfo({{#allParams}}{{>nullable_var_annotations}} {{#lambda.jSpecifyDatatype}}{{{dataType}}}{{/lambda.jSpecifyDatatype}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}Map<String, String> headers) throws ApiException {
439+
public {{#asyncNative}}CompletableFuture<{{/asyncNative}}ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}>{{#asyncNative}}>{{/asyncNative}} {{operationId}}WithHttpInfo({{#allParams}}{{>nullableArgument}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}Map<String, String> headers) throws ApiException {
440440
{{^asyncNative}}
441441
HttpRequest.Builder localVarRequestBuilder = {{operationId}}RequestBuilder({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers);
442442
try {
@@ -626,7 +626,7 @@ public class {{classname}} {
626626
{{/asyncNative}}
627627
}
628628

629-
private HttpRequest.Builder {{operationId}}RequestBuilder({{#allParams}}{{>nullable_var_annotations}} {{#lambda.jSpecifyDatatype}}{{{dataType}}}{{/lambda.jSpecifyDatatype}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}Map<String, String> headers) throws ApiException {
629+
private HttpRequest.Builder {{operationId}}RequestBuilder({{#allParams}}{{>nullableArgument}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}Map<String, String> headers) throws ApiException {
630630
{{#allParams}}
631631
{{#required}}
632632
// verify the required parameter '{{paramName}}' is set
@@ -907,11 +907,11 @@ public class {{classname}} {
907907
public static final class API{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request {
908908
{{#requiredParams}}
909909
{{>nullable_var_annotations}}{{! prevent indent}}
910-
private {{#lambda.jSpecifyDatatype}}{{{dataType}}}{{/lambda.jSpecifyDatatype}} {{paramName}}; // {{description}} (required)
910+
private{{>nullableDataType}} {{paramName}}; // {{description}} (required)
911911
{{/requiredParams}}
912912
{{#optionalParams}}
913913
{{>nullable_var_annotations}}{{! prevent indent}}
914-
private {{#lambda.jSpecifyDatatype}}{{{dataType}}}{{/lambda.jSpecifyDatatype}} {{paramName}}; // {{description}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}})
914+
private{{>nullableDataType}} {{paramName}}; // {{description}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}})
915915
{{/optionalParams}}
916916

917917
private API{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request(Builder builder) {
@@ -924,7 +924,7 @@ public class {{classname}} {
924924
}
925925
{{#allParams}}
926926
{{>nullable_var_annotations}}{{! prevent indent}}
927-
public {{#lambda.jSpecifyDatatype}}{{{dataType}}}{{/lambda.jSpecifyDatatype}} {{paramName}}() {
927+
public{{>nullableDataType}} {{paramName}}() {
928928
return {{paramName}};
929929
}
930930
{{/allParams}}
@@ -941,7 +941,7 @@ public class {{classname}} {
941941
{{/optionalParams}}
942942

943943
{{#allParams}}
944-
public Builder {{paramName}}({{>nullable_var_annotations}} {{#lambda.jSpecifyDatatype}}{{{dataType}}}{{/lambda.jSpecifyDatatype}} {{paramName}}) {
944+
public Builder {{paramName}}({{>nullableArgument}} {{paramName}}) {
945945
this.{{paramName}} = {{paramName}};
946946
return this;
947947
}

modules/openapi-generator/src/main/resources/Java/libraries/native/pojo.mustache

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
7878
{{/vendorExtensions.x-is-jackson-optional-nullable}}
7979
{{^vendorExtensions.x-is-jackson-optional-nullable}}
8080
{{>nullable_var_annotations}}{{! prevent indent}}
81-
private {{#lambda.jSpecifyDatatype}}{{{datatypeWithEnum}}}{{/lambda.jSpecifyDatatype}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
81+
private{{>nullableDatatypeWithEnum}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
8282
{{/vendorExtensions.x-is-jackson-optional-nullable}}
8383

8484
{{/vars}}
@@ -107,7 +107,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
107107
));
108108

109109
{{/vendorExtensions.x-enum-as-string}}
110-
public {{classname}} {{name}}({{>nullable_var_annotations}} {{#lambda.jSpecifyDatatype}}{{{datatypeWithEnum}}}{{/lambda.jSpecifyDatatype}} {{name}}) {
110+
public {{classname}} {{name}}({{>nullableArgumentWithEnum}} {{name}}) {
111111
{{#vendorExtensions.x-enum-as-string}}
112112
if (!{{{nameInSnakeCase}}}_VALUES.contains({{name}})) {
113113
throw new IllegalArgumentException({{name}} + " is invalid. Possible values for {{name}}: " + String.join(", ", {{{nameInSnakeCase}}}_VALUES));
@@ -209,7 +209,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
209209
{{!unannotated, Jackson would pick this up automatically and add it *in addition* to the _JsonNullable getter field}}
210210
@JsonIgnore
211211
{{/vendorExtensions.x-is-jackson-optional-nullable}}
212-
{{^vendorExtensions.x-is-jackson-optional-nullable}}{{#jackson}}{{> jackson_annotations}}{{/jackson}}{{/vendorExtensions.x-is-jackson-optional-nullable}} public {{#lambda.jSpecifyDatatype}}{{{datatypeWithEnum}}}{{/lambda.jSpecifyDatatype}} {{getter}}() {
212+
{{^vendorExtensions.x-is-jackson-optional-nullable}}{{#jackson}}{{> jackson_annotations}}{{/jackson}}{{/vendorExtensions.x-is-jackson-optional-nullable}} public{{>nullableDatatypeWithEnum}} {{getter}}() {
213213
{{#vendorExtensions.x-is-jackson-optional-nullable}}
214214
{{#isReadOnly}}{{! A readonly attribute doesn't have setter => jackson will set null directly if explicitly returned by API, so make sure we have an empty JsonNullable}}
215215
if ({{name}} == null) {
@@ -239,7 +239,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
239239
240240
{{^isReadOnly}}
241241
{{#vendorExtensions.x-setter-extra-annotation}} {{{vendorExtensions.x-setter-extra-annotation}}}
242-
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
242+
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{>nullableArgumentWithEnum}} {{name}}) {
243243
{{#vendorExtensions.x-enum-as-string}}
244244
if (!{{{nameInSnakeCase}}}_VALUES.contains({{name}})) {
245245
throw new IllegalArgumentException({{name}} + " is invalid. Possible values for {{name}}: " + String.join(", ", {{{nameInSnakeCase}}}_VALUES));
@@ -262,7 +262,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
262262
{{#allVars}}
263263
{{#isOverridden}}
264264
@Override
265-
public {{classname}} {{name}}({{>nullable_var_annotations}} {{#lambda.jSpecifyDatatype}}{{{datatypeWithEnum}}}{{/lambda.jSpecifyDatatype}} {{name}}) {
265+
public {{classname}} {{name}}({{>nullableArgumentWithEnum}} {{name}}) {
266266
{{#vendorExtensions.x-is-jackson-optional-nullable}}
267267
this.{{setter}}(JsonNullable.<{{{datatypeWithEnum}}}>of({{name}}));
268268
{{/vendorExtensions.x-is-jackson-optional-nullable}}

0 commit comments

Comments
 (0)