forked from loafle/openapi-generator-original
make sure to camelize properly before checking for reserved words (#4302)
This commit is contained in:
parent
fbe4feedd4
commit
0a97b9c568
@ -518,25 +518,33 @@ public class Swift3Codegen extends DefaultCodegen implements CodegenConfig {
|
|||||||
return camelize(WordUtils.capitalizeFully(getSymbolName(name).toUpperCase()), true);
|
return camelize(WordUtils.capitalizeFully(getSymbolName(name).toUpperCase()), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Camelize only when we have a structure defined below
|
||||||
|
Boolean camelized = false;
|
||||||
|
if (name.matches("[A-Z][a-z0-9]+[a-zA-Z0-9]*")) {
|
||||||
|
name = camelize(name, true);
|
||||||
|
camelized = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Reserved Name
|
// Reserved Name
|
||||||
if (isReservedWord(name)) {
|
if (isReservedWord(name)) {
|
||||||
return escapeReservedWord(name);
|
return escapeReservedWord(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check for numerical conversions
|
||||||
if ("Int".equals(datatype) || "Int32".equals(datatype) || "Int64".equals(datatype) ||
|
if ("Int".equals(datatype) || "Int32".equals(datatype) || "Int64".equals(datatype) ||
|
||||||
"Float".equals(datatype) || "Double".equals(datatype)) {
|
"Float".equals(datatype) || "Double".equals(datatype)) {
|
||||||
String varName = "number" + camelize(name);
|
String varName = "number" + camelize(name);
|
||||||
varName = varName.replaceAll("-", "minus");
|
varName = varName.replaceAll("-", "minus");
|
||||||
varName = varName.replaceAll("\\+", "plus");
|
varName = varName.replaceAll("\\+", "plus");
|
||||||
varName = varName.replaceAll("\\.", "dot");
|
varName = varName.replaceAll("\\.", "dot");
|
||||||
|
|
||||||
return varName;
|
return varName;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevent from breaking properly cased identifier
|
// If we have already camelized the word, don't progress
|
||||||
if (name.matches("[A-Z][a-z0-9]+[a-zA-Z0-9]*")) {
|
// any further
|
||||||
return camelize(name, true);
|
if (camelized) {
|
||||||
}
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
char[] separators = {'-', '_', ' ', ':', '(', ')'};
|
char[] separators = {'-', '_', ' ', ':', '(', ')'};
|
||||||
return camelize(WordUtils.capitalizeFully(StringUtils.lowerCase(name), separators).replaceAll("[-_ :\\(\\)]", ""), true);
|
return camelize(WordUtils.capitalizeFully(StringUtils.lowerCase(name), separators).replaceAll("[-_ :\\(\\)]", ""), true);
|
||||||
|
@ -13,6 +13,16 @@ public class Swift3CodegenTest {
|
|||||||
|
|
||||||
Swift3Codegen swiftCodegen = new Swift3Codegen();
|
Swift3Codegen swiftCodegen = new Swift3Codegen();
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testReservedWord() throws Exception {
|
||||||
|
Assert.assertEquals(swiftCodegen.toEnumVarName("Public", null), "_public");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldNotBreakNonReservedWord() throws Exception {
|
||||||
|
Assert.assertEquals(swiftCodegen.toEnumVarName("Error", null), "error");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldNotBreakCorrectName() throws Exception {
|
public void shouldNotBreakCorrectName() throws Exception {
|
||||||
Assert.assertEquals(swiftCodegen.toEnumVarName("EntryName", null), "entryName");
|
Assert.assertEquals(swiftCodegen.toEnumVarName("EntryName", null), "entryName");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user