From 0686a9169018094e8386bed4f6101191a5ec4a5c Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Fri, 27 Mar 2015 23:18:54 -0700 Subject: [PATCH] updated camelize function for #567 --- .../wordnik/swagger/codegen/DefaultCodegen.java | 15 +++++++++++++++ .../src/test/scala/Java/JavaModelTest.scala | 11 +++++++++++ 2 files changed, 26 insertions(+) diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java index f0664a72c72..062bcb5fe26 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java @@ -1099,6 +1099,21 @@ public class DefaultCodegen { m = p.matcher(word); } + // case out dots + String[] parts = word.split("\\."); + StringBuilder f = new StringBuilder(); + for(String z : parts) { + if(z.length() > 0) + f.append(Character.toUpperCase(z.charAt(0))).append(z.substring(1)); + } + word = f.toString(); + + m = p.matcher(word); + while (m.find()) { + word = m.replaceFirst("" + Character.toUpperCase(m.group(1).charAt(0)) + m.group(1).substring(1)/*.toUpperCase()*/); + m = p.matcher(word); + } + // Uppercase the class name. p = Pattern.compile("(\\.?)(\\w)([^\\.]*)$"); m = p.matcher(word); diff --git a/modules/swagger-codegen/src/test/scala/Java/JavaModelTest.scala b/modules/swagger-codegen/src/test/scala/Java/JavaModelTest.scala index a5d30bc6804..16fd6677a45 100644 --- a/modules/swagger-codegen/src/test/scala/Java/JavaModelTest.scala +++ b/modules/swagger-codegen/src/test/scala/Java/JavaModelTest.scala @@ -335,4 +335,15 @@ class JavaModelTest extends FlatSpec with Matchers { vars.get(0).setter should be ("setCreatedAt") vars.get(0).name should be ("createdAt") } + + it should "properly escape names per 567" in { + val model = new ModelImpl() + .description("a sample model") + .property("created-at", new DateTimeProperty()) + + val codegen = new JavaClientCodegen() + val cm = codegen.fromModel("with.dots", model) + val vars = cm.vars + cm.classname should be ("WithDots") + } }