Skip to content

Commit c01f4bf

Browse files
etherealjoywing328
authored andcommitted
[cpp-qt5] sanitize model names (#388)
* Escape characters that have language significance * Remove assignment to parameter variable
1 parent 36f4452 commit c01f4bf

1 file changed

Lines changed: 12 additions & 11 deletions

File tree

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

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ public String toModelImport(String name) {
248248
if (!folder.isEmpty())
249249
folder += File.separator;
250250

251-
return "#include \"" + folder + name + ".h\"";
251+
return "#include \"" + folder + toModelName(name) + ".h\"";
252252
}
253253

254254
/**
@@ -285,7 +285,7 @@ public String apiFileFolder() {
285285

286286
@Override
287287
public String toModelFilename(String name) {
288-
return modelNamePrefix + initialCaps(name);
288+
return initialCaps(toModelName(name));
289289
}
290290

291291
@Override
@@ -381,7 +381,7 @@ public String getSchemaType(Schema p) {
381381
@Override
382382
public String toModelName(String type) {
383383
if (type == null) {
384-
LOGGER.warn("Model name can't be null. Defaul to 'UnknownModel'.");
384+
LOGGER.warn("Model name can't be null. Default to 'UnknownModel'.");
385385
type = "UnknownModel";
386386
}
387387

@@ -392,30 +392,31 @@ public String toModelName(String type) {
392392
languageSpecificPrimitives.contains(type)) {
393393
return type;
394394
} else {
395-
return modelNamePrefix + Character.toUpperCase(type.charAt(0)) + type.substring(1);
395+
String typeName = sanitizeName(type);
396+
return modelNamePrefix + Character.toUpperCase(typeName.charAt(0)) + typeName.substring(1);
396397
}
397398
}
398399

399400
@Override
400401
public String toVarName(String name) {
401402
// sanitize name
402-
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
403+
String varName = sanitizeName(name);
403404

404405
// if it's all uppper case, convert to lower case
405-
if (name.matches("^[A-Z_]*$")) {
406-
name = name.toLowerCase();
406+
if (varName.matches("^[A-Z_]*$")) {
407+
varName = varName.toLowerCase();
407408
}
408409

409410
// camelize (lower first character) the variable name
410411
// petId => pet_id
411-
name = underscore(name);
412+
varName = underscore(varName);
412413

413414
// for reserved word or word starting with number, append _
414-
if (isReservedWord(name) || name.matches("^\\d.*")) {
415-
name = escapeReservedWord(name);
415+
if (isReservedWord(varName) || varName.matches("^\\d.*")) {
416+
varName = escapeReservedWord(varName);
416417
}
417418

418-
return name;
419+
return varName;
419420
}
420421

421422
@Override

0 commit comments

Comments
 (0)