Skip to content

Commit 12849cc

Browse files
authored
Camel case lambda does too much (#18131)
* moved camel case lambda * renamed camel case lambda * reverted unintended change
1 parent c5ab785 commit 12849cc

20 files changed

Lines changed: 162 additions & 162 deletions

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -463,8 +463,8 @@ protected ImmutableMap.Builder<String, Lambda> addMustacheLambdas() {
463463
.put("snakecase", new SnakecaseLambda())
464464
.put("titlecase", new TitlecaseLambda())
465465
.put("kebabcase", new KebabCaseLambda())
466-
.put("camelcase", new CamelCaseLambda(true).generator(this))
467-
.put("pascalcase", new CamelCaseLambda(false).generator(this))
466+
.put("camelcase", new CamelCaseAndSanitizeLambda(true).generator(this))
467+
.put("pascalcase", new CamelCaseAndSanitizeLambda(false).generator(this))
468468
.put("uncamelize", new UncamelizeLambda())
469469
.put("forwardslash", new ForwardSlashLambda())
470470
.put("backslash", new BackSlashLambda())

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ protected ImmutableMap.Builder<String, Lambda> addMustacheLambdas() {
441441
CopyLambda copyLambda = new CopyLambda();
442442

443443
return super.addMustacheLambdas()
444-
.put("camelcase_param", new CamelCaseLambda().generator(this).escapeAsParamName(true))
444+
.put("camelcase_sanitize_param", new CamelCaseAndSanitizeLambda().generator(this).escapeAsParamName(true))
445445
.put("required", new RequiredParameterLambda())
446446
.put("optional", new OptionalParameterLambda().generator(this))
447447
.put("joinWithComma", new JoinWithCommaLambda())

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ public void processOpts() {
313313
@Override
314314
protected ImmutableMap.Builder<String, Lambda> addMustacheLambdas() {
315315
return super.addMustacheLambdas()
316-
.put("camelcase_param", new CamelCaseLambda().generator(this).escapeAsParamName(true));
316+
.put("camelcase_param", new CamelCaseAndSanitizeLambda().generator(this).escapeAsParamName(true));
317317
}
318318

319319
@Override

modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CamelCaseLambda.java renamed to modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CamelCaseAndSanitizeLambda.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,35 +34,35 @@
3434
*
3535
* Register:
3636
* <pre>
37-
* additionalProperties.put("camelcase", new CamelCaseLambda());
37+
* additionalProperties.put("camelcase", new CamelCaseAndSanitizeLambda());
3838
* </pre>
3939
*
4040
* Use:
4141
* <pre>
4242
* {{#camelcase}}{{name}}{{/camelcase}}
4343
* </pre>
4444
*/
45-
public class CamelCaseLambda implements Mustache.Lambda {
45+
public class CamelCaseAndSanitizeLambda implements Mustache.Lambda {
4646
private CodegenConfig generator = null;
4747
private Boolean escapeParam = false;
4848
private CamelizeOption option = LOWERCASE_FIRST_LETTER;
4949

50-
public CamelCaseLambda(boolean lowercaseFirstLetter) {
50+
public CamelCaseAndSanitizeLambda(boolean lowercaseFirstLetter) {
5151
if (lowercaseFirstLetter) {
5252
option = LOWERCASE_FIRST_LETTER;
5353
} else {
5454
option = UPPERCASE_FIRST_CHAR;
5555
}
5656
}
5757

58-
public CamelCaseLambda() {}
58+
public CamelCaseAndSanitizeLambda() {}
5959

60-
public CamelCaseLambda generator(final CodegenConfig generator) {
60+
public CamelCaseAndSanitizeLambda generator(final CodegenConfig generator) {
6161
this.generator = generator;
6262
return this;
6363
}
6464

65-
public CamelCaseLambda escapeAsParamName(final Boolean escape) {
65+
public CamelCaseAndSanitizeLambda escapeAsParamName(final Boolean escape) {
6666
this.escapeParam = escape;
6767
return this;
6868
}

modules/openapi-generator/src/main/resources/csharp-functions/modelGeneric.mustache

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -112,33 +112,33 @@
112112
/// Initializes a new instance of the <see cref="{{classname}}" /> class.
113113
/// </summary>
114114
{{#readWriteVars}}
115-
/// <param name="{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}">{{#description}}{{description}}{{/description}}{{^description}}{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}{{/description}}{{#required}} (required){{/required}}{{#defaultValue}} (default to {{defaultValue}}){{/defaultValue}}.</param>
115+
/// <param name="{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}">{{#description}}{{description}}{{/description}}{{^description}}{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}{{/description}}{{#required}} (required){{/required}}{{#defaultValue}} (default to {{defaultValue}}){{/defaultValue}}.</param>
116116
{{/readWriteVars}}
117117
{{#hasOnlyReadOnly}}
118118
[JsonConstructorAttribute]
119119
{{/hasOnlyReadOnly}}
120-
public {{classname}}({{#readWriteVars}}{{{datatypeWithEnum}}}{{#isEnum}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}}{{/isEnum}} {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} = {{#defaultValue}}{{^isDateTime}}{{{defaultValue}}}{{/isDateTime}}{{#isDateTime}}default({{{datatypeWithEnum}}}){{/isDateTime}}{{/defaultValue}}{{^defaultValue}}default({{{datatypeWithEnum}}}{{#isEnum}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}}{{/isEnum}}){{/defaultValue}}{{^-last}}, {{/-last}}{{/readWriteVars}}){{#parent}} : base({{#parentVars}}{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}{{^-last}}, {{/-last}}{{/parentVars}}){{/parent}}
120+
public {{classname}}({{#readWriteVars}}{{{datatypeWithEnum}}}{{#isEnum}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}}{{/isEnum}} {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} = {{#defaultValue}}{{^isDateTime}}{{{defaultValue}}}{{/isDateTime}}{{#isDateTime}}default({{{datatypeWithEnum}}}){{/isDateTime}}{{/defaultValue}}{{^defaultValue}}default({{{datatypeWithEnum}}}{{#isEnum}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}}{{/isEnum}}){{/defaultValue}}{{^-last}}, {{/-last}}{{/readWriteVars}}){{#parent}} : base({{#parentVars}}{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}{{^-last}}, {{/-last}}{{/parentVars}}){{/parent}}
121121
{
122122
{{#vars}}
123123
{{^isInherited}}
124124
{{^isReadOnly}}
125125
{{#required}}
126126
{{^conditionalSerialization}}
127127
{{^vendorExtensions.x-csharp-value-type}}
128-
// to ensure "{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}" is required (not null)
129-
this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} ?? throw new ArgumentNullException("{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} is a required property for {{classname}} and cannot be null");
128+
// to ensure "{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}" is required (not null)
129+
this.{{name}} = {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} ?? throw new ArgumentNullException("{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} is a required property for {{classname}} and cannot be null");
130130
{{/vendorExtensions.x-csharp-value-type}}
131131
{{#vendorExtensions.x-csharp-value-type}}
132-
this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}};
132+
this.{{name}} = {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}};
133133
{{/vendorExtensions.x-csharp-value-type}}
134134
{{/conditionalSerialization}}
135135
{{#conditionalSerialization}}
136136
{{^vendorExtensions.x-csharp-value-type}}
137-
// to ensure "{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}" is required (not null)
138-
this._{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} ?? throw new ArgumentNullException("{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} is a required property for {{classname}} and cannot be null");
137+
// to ensure "{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}" is required (not null)
138+
this._{{name}} = {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} ?? throw new ArgumentNullException("{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} is a required property for {{classname}} and cannot be null");
139139
{{/vendorExtensions.x-csharp-value-type}}
140140
{{#vendorExtensions.x-csharp-value-type}}
141-
this._{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}};
141+
this._{{name}} = {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}};
142142
{{/vendorExtensions.x-csharp-value-type}}
143143
{{/conditionalSerialization}}
144144
{{/required}}
@@ -151,19 +151,19 @@
151151
{{^required}}
152152
{{#defaultValue}}
153153
{{^vendorExtensions.x-csharp-value-type}}
154-
// use default value if no "{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}" provided
155-
this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} ?? {{{defaultValue}}};
154+
// use default value if no "{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}" provided
155+
this.{{name}} = {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} ?? {{{defaultValue}}};
156156
{{/vendorExtensions.x-csharp-value-type}}
157157
{{#vendorExtensions.x-csharp-value-type}}
158-
this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}};
158+
this.{{name}} = {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}};
159159
{{/vendorExtensions.x-csharp-value-type}}
160160
{{/defaultValue}}
161161
{{^defaultValue}}
162162
{{^conditionalSerialization}}
163-
this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}};
163+
this.{{name}} = {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}};
164164
{{/conditionalSerialization}}
165165
{{#conditionalSerialization}}
166-
this._{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}};
166+
this._{{name}} = {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}};
167167
{{/conditionalSerialization}}
168168
{{/defaultValue}}
169169
{{/required}}

modules/openapi-generator/src/main/resources/csharp/api.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ namespace {{packageName}}.{{apiPackage}}
333333
{{#items.vars}}
334334
if ({{paramName}}.{{name}} != null)
335335
{
336-
localVarRequestOptions.QueryParameters.Add({{packageName}}.Client.ClientUtils.ParameterToMultiMap("{{collectionFormat}}", "{{paramName}}[{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}]", {{paramName}}.{{name}}));
336+
localVarRequestOptions.QueryParameters.Add({{packageName}}.Client.ClientUtils.ParameterToMultiMap("{{collectionFormat}}", "{{paramName}}[{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}]", {{paramName}}.{{name}}));
337337
}
338338
{{/items.vars}}
339339
{{^items}}
@@ -617,7 +617,7 @@ namespace {{packageName}}.{{apiPackage}}
617617
{{#items.vars}}
618618
if ({{paramName}}.{{name}} != null)
619619
{
620-
localVarRequestOptions.QueryParameters.Add({{packageName}}.Client.ClientUtils.ParameterToMultiMap("{{collectionFormat}}", "{{paramName}}[{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}]", {{paramName}}.{{name}}));
620+
localVarRequestOptions.QueryParameters.Add({{packageName}}.Client.ClientUtils.ParameterToMultiMap("{{collectionFormat}}", "{{paramName}}[{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}]", {{paramName}}.{{name}}));
621621
}
622622
{{/items.vars}}
623623
{{^items}}

modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ClientUtils.mustache

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -179,26 +179,26 @@ using System.Runtime.CompilerServices;
179179
{{#models}}
180180
{{#model}}
181181
{{#isEnum}}
182-
if (obj is {{classname}} {{#lambda.camelcase_param}}{{classname}}{{/lambda.camelcase_param}})
182+
if (obj is {{classname}} {{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}})
183183
{{! below has #isNumeric as a work around but should probably have ^isString instead https://github.com/OpenAPITools/openapi-generator/issues/15038}}
184-
return {{classname}}ValueConverter.{{#isInnerEnum}}{{classname}}.{{/isInnerEnum}}{{{datatypeWithEnum}}}ToJsonValue({{#lambda.camelcase_param}}{{classname}}{{/lambda.camelcase_param}}){{#isNumeric}}.ToString(){{/isNumeric}};
184+
return {{classname}}ValueConverter.{{#isInnerEnum}}{{classname}}.{{/isInnerEnum}}{{{datatypeWithEnum}}}ToJsonValue({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}){{#isNumeric}}.ToString(){{/isNumeric}};
185185
{{/isEnum}}
186186
{{^isEnum}}
187187
{{#vars}}
188188
{{#items.isEnum}}
189189
{{#items}}
190190
{{^complexType}}
191-
if (obj is {{#isInnerEnum}}{{classname}}.{{/isInnerEnum}}{{{datatypeWithEnum}}} {{#lambda.camelcase_param}}{{classname}}{{{datatypeWithEnum}}}{{/lambda.camelcase_param}})
191+
if (obj is {{#isInnerEnum}}{{classname}}.{{/isInnerEnum}}{{{datatypeWithEnum}}} {{#lambda.camelcase_sanitize_param}}{{classname}}{{{datatypeWithEnum}}}{{/lambda.camelcase_sanitize_param}})
192192
{{! below has #isNumeric as a work around but should probably have ^isString instead https://github.com/OpenAPITools/openapi-generator/issues/15038}}
193-
return {{#isInnerEnum}}{{classname}}.{{/isInnerEnum}}{{{datatypeWithEnum}}}ToJsonValue({{#lambda.camelcase_param}}{{classname}}{{{datatypeWithEnum}}}{{/lambda.camelcase_param}}){{#isNumeric}}.ToString(){{/isNumeric}};
193+
return {{#isInnerEnum}}{{classname}}.{{/isInnerEnum}}{{{datatypeWithEnum}}}ToJsonValue({{#lambda.camelcase_sanitize_param}}{{classname}}{{{datatypeWithEnum}}}{{/lambda.camelcase_sanitize_param}}){{#isNumeric}}.ToString(){{/isNumeric}};
194194
{{/complexType}}
195195
{{/items}}
196196
{{/items.isEnum}}
197197
{{#isEnum}}
198198
{{^complexType}}
199-
if (obj is {{#isInnerEnum}}{{classname}}.{{/isInnerEnum}}{{{datatypeWithEnum}}} {{#lambda.camelcase_param}}{{classname}}{{{datatypeWithEnum}}}{{/lambda.camelcase_param}})
199+
if (obj is {{#isInnerEnum}}{{classname}}.{{/isInnerEnum}}{{{datatypeWithEnum}}} {{#lambda.camelcase_sanitize_param}}{{classname}}{{{datatypeWithEnum}}}{{/lambda.camelcase_sanitize_param}})
200200
{{! below has #isNumeric as a work around but should probably have ^isString instead https://github.com/OpenAPITools/openapi-generator/issues/15038}}
201-
return {{#isInnerEnum}}{{classname}}.{{/isInnerEnum}}{{{datatypeWithEnum}}}ToJsonValue({{#lambda.camelcase_param}}{{classname}}{{{datatypeWithEnum}}}{{/lambda.camelcase_param}}){{#isNumeric}}.ToString(){{/isNumeric}};
201+
return {{#isInnerEnum}}{{classname}}.{{/isInnerEnum}}{{{datatypeWithEnum}}}ToJsonValue({{#lambda.camelcase_sanitize_param}}{{classname}}{{{datatypeWithEnum}}}{{/lambda.camelcase_sanitize_param}}){{#isNumeric}}.ToString(){{/isNumeric}};
202202
{{/complexType}}
203203
{{/isEnum}}
204204
{{/vars}}

0 commit comments

Comments
 (0)