Skip to content

Commit a62cd19

Browse files
committed
Merge pull request #569 from swagger-api/issue-567
updated camelize function for #567
2 parents 4f6d5f6 + 0686a91 commit a62cd19

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,6 +1099,21 @@ public static String camelize(String word, boolean lowercaseFirstLetter) {
10991099
m = p.matcher(word);
11001100
}
11011101

1102+
// case out dots
1103+
String[] parts = word.split("\\.");
1104+
StringBuilder f = new StringBuilder();
1105+
for(String z : parts) {
1106+
if(z.length() > 0)
1107+
f.append(Character.toUpperCase(z.charAt(0))).append(z.substring(1));
1108+
}
1109+
word = f.toString();
1110+
1111+
m = p.matcher(word);
1112+
while (m.find()) {
1113+
word = m.replaceFirst("" + Character.toUpperCase(m.group(1).charAt(0)) + m.group(1).substring(1)/*.toUpperCase()*/);
1114+
m = p.matcher(word);
1115+
}
1116+
11021117
// Uppercase the class name.
11031118
p = Pattern.compile("(\\.?)(\\w)([^\\.]*)$");
11041119
m = p.matcher(word);

modules/swagger-codegen/src/test/scala/Java/JavaModelTest.scala

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,4 +335,15 @@ class JavaModelTest extends FlatSpec with Matchers {
335335
vars.get(0).setter should be ("setCreatedAt")
336336
vars.get(0).name should be ("createdAt")
337337
}
338+
339+
it should "properly escape names per 567" in {
340+
val model = new ModelImpl()
341+
.description("a sample model")
342+
.property("created-at", new DateTimeProperty())
343+
344+
val codegen = new JavaClientCodegen()
345+
val cm = codegen.fromModel("with.dots", model)
346+
val vars = cm.vars
347+
cm.classname should be ("WithDots")
348+
}
338349
}

0 commit comments

Comments
 (0)