Skip to content

Commit bc559b3

Browse files
committed
Merge pull request #2328 from wing328/model_reserved_word
Use "Model" to handle model name with reserved keywords
2 parents bf32820 + 97b0086 commit bc559b3

14 files changed

+76
-36
lines changed

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractCSharpCodegen.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ public String toModelName(String name) {
497497
// model name cannot use reserved keyword, e.g. return
498498
if (isReservedWord(name)) {
499499
LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + camelize("model_" + name));
500-
name = "model_" + name; // e.g. return => ObjectReturn (after camelize)
500+
name = "model_" + name; // e.g. return => ModelReturn (after camelize)
501501
}
502502

503503
// camelize the model name

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ public String toModelName(String name) {
134134

135135
// model name cannot use reserved keyword, e.g. return
136136
if (isReservedWord(name)) {
137-
String modelName = camelize("object_" + name);
137+
String modelName = camelize("model_" + name);
138138
LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + modelName);
139139
return modelName;
140140
}

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AndroidClientCodegen.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,13 +185,22 @@ public String toParamName(String name) {
185185

186186
@Override
187187
public String toModelName(String name) {
188+
// add prefix, suffix if needed
189+
if (!StringUtils.isEmpty(modelNamePrefix)) {
190+
name = modelNamePrefix + "_" + name;
191+
}
192+
193+
if (!StringUtils.isEmpty(modelNameSuffix)) {
194+
name = name + "_" + modelNameSuffix;
195+
}
196+
188197
// camelize the model name
189198
// phone_number => PhoneNumber
190-
name = camelize(sanitizeName(modelNamePrefix + name + modelNameSuffix));
199+
name = camelize(sanitizeName(name));
191200

192201
// model name cannot use reserved keyword, e.g. return
193202
if (isReservedWord(name)) {
194-
String modelName = "Object" + name;
203+
String modelName = "Model" + name;
195204
LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + modelName);
196205
return modelName;
197206
}

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/FlashClientCodegen.java

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -287,9 +287,20 @@ public String toParamName(String name) {
287287

288288
@Override
289289
public String toModelName(String name) {
290+
if (!StringUtils.isEmpty(modelNamePrefix)) {
291+
name = modelNamePrefix + "_" + name;
292+
}
293+
294+
if (!StringUtils.isEmpty(modelNameSuffix)) {
295+
name = name + "_" + modelNameSuffix;
296+
}
297+
298+
name = sanitizeName(name);
299+
290300
// model name cannot use reserved keyword, e.g. return
291301
if (isReservedWord(name)) {
292-
throw new RuntimeException(name + " (reserved word) cannot be used as a model name");
302+
LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + camelize("model_" + name));
303+
name = "model_" + name; // e.g. return => ModelReturn (after camelize)
293304
}
294305

295306
// camelize the model name
@@ -299,14 +310,8 @@ public String toModelName(String name) {
299310

300311
@Override
301312
public String toModelFilename(String name) {
302-
// model name cannot use reserved keyword, e.g. return
303-
if (isReservedWord(name)) {
304-
throw new RuntimeException(name + " (reserved word) cannot be used as a model name");
305-
}
306-
307-
// underscore the model file name
308-
// PhoneNumber => phone_number
309-
return camelize(dropDots(name));
313+
// leverage toModelName
314+
return dropDots(toModelName(name));
310315
}
311316

312317
@Override
@@ -344,7 +349,8 @@ public String toOperationId(String operationId) {
344349

345350
// method name cannot use reserved keyword, e.g. return
346351
if (isReservedWord(operationId)) {
347-
throw new RuntimeException(operationId + " (reserved word) cannot be used as method name");
352+
LOGGER.warn(operationId + " (reserved word) cannot be used as method name. Renamed to " + underscore(sanitizeName("call_" + operationId)));
353+
operationId = "call_" + operationId;
348354
}
349355

350356
return underscore(operationId);

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/GoClientCodegen.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,9 +192,21 @@ public String toParamName(String name) {
192192

193193
@Override
194194
public String toModelName(String name) {
195+
if (!StringUtils.isEmpty(modelNamePrefix)) {
196+
name = modelNamePrefix + "_" + name;
197+
}
198+
199+
if (!StringUtils.isEmpty(modelNameSuffix)) {
200+
name = name + "_" + modelNameSuffix;
201+
}
202+
203+
name = sanitizeName(name);
204+
195205
// model name cannot use reserved keyword, e.g. return
196-
if(isReservedWord(name))
197-
throw new RuntimeException(name + " (reserved word) cannot be used as a model name");
206+
if (isReservedWord(name)) {
207+
LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + camelize("model_" + name));
208+
name = "model_" + name; // e.g. return => ModelReturn (after camelize)
209+
}
198210

199211
// camelize the model name
200212
// phone_number => PhoneNumber
@@ -257,8 +269,10 @@ public String getSwaggerType(Property p) {
257269
@Override
258270
public String toOperationId(String operationId) {
259271
// method name cannot use reserved keyword, e.g. return
260-
if(isReservedWord(operationId))
261-
throw new RuntimeException(operationId + " (reserved word) cannot be used as method name");
272+
if (isReservedWord(operationId)) {
273+
LOGGER.warn(operationId + " (reserved word) cannot be used as method name. Renamed to " + camelize(sanitizeName("call_" + operationId)));
274+
operationId = "call_" + operationId;
275+
}
262276

263277
return camelize(operationId);
264278
}

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ public String toModelName(final String name) {
388388

389389
// model name cannot use reserved keyword, e.g. return
390390
if (isReservedWord(camelizedName)) {
391-
final String modelName = "Object" + camelizedName;
391+
final String modelName = "Model" + camelizedName;
392392
LOGGER.warn(camelizedName + " (reserved word) cannot be used as model name. Renamed to " + modelName);
393393
return modelName;
394394
}

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ public String toModelName(String name) {
308308

309309
// model name cannot use reserved keyword, e.g. return
310310
if (isReservedWord(name)) {
311-
String modelName = "Object" + name;
311+
String modelName = "Model" + name;
312312
LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + modelName);
313313
return modelName;
314314
}

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClosureAngularClientCodegen.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import java.util.*;
99
import java.io.File;
1010

11+
import org.apache.commons.lang.StringUtils;
12+
1113
public class JavascriptClosureAngularClientCodegen extends DefaultCodegen implements CodegenConfig {
1214
public JavascriptClosureAngularClientCodegen() {
1315
super();
@@ -128,10 +130,19 @@ public String toParamName(String name) {
128130

129131
@Override
130132
public String toModelName(String name) {
133+
if (!StringUtils.isEmpty(modelNamePrefix)) {
134+
name = modelNamePrefix + "_" + name;
135+
}
136+
137+
if (!StringUtils.isEmpty(modelNameSuffix)) {
138+
name = name + "_" + modelNameSuffix;
139+
}
140+
131141
// model name cannot use reserved keyword, e.g. return
132-
if (isReservedWord(name))
133-
throw new RuntimeException(name
134-
+ " (reserved word) cannot be used as a model name");
142+
if (isReservedWord(name)) {
143+
LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + camelize("model_" + name));
144+
name = "model_" + name; // e.g. return => ModelReturn (after camelize)
145+
}
135146

136147
// camelize the model name
137148
// phone_number => PhoneNumber

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/ObjcClientCodegen.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,8 +316,8 @@ else if (languageSpecificPrimitives.contains(swaggerType)) {
316316
public String toModelName(String type) {
317317
// model name cannot use reserved keyword
318318
if (reservedWords.contains(type)) {
319-
LOGGER.warn(type+ " (reserved word) cannot be used as model name. Renamed to " + ("object_" + type) + " before further processing");
320-
type = "object_" + type; // e.g. return => ObjectReturn (after camelize)
319+
LOGGER.warn(type+ " (reserved word) cannot be used as model name. Renamed to " + ("model_" + type) + " before further processing");
320+
type = "model_" + type; // e.g. return => ModelReturn (after camelize)
321321
}
322322

323323
return toModelNameWithoutReservedWordCheck(type);

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PerlClientCodegen.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,8 @@ public String toModelName(String name) {
222222

223223
// model name cannot use reserved keyword
224224
if (isReservedWord(name)) {
225-
LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + camelize("object_" + name));
226-
name = "object_" + name;
225+
LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + camelize("model_" + name));
226+
name = "model_" + name;
227227
}
228228

229229
// add prefix/suffic to model name

0 commit comments

Comments
 (0)