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 4057d2975c9..d0a169b7873 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 @@ -448,18 +448,19 @@ public class DefaultCodegen { return m; } - public static String getterAndSetterCapitalize(String name) { - if (name == null || name.length() == 0) { - return name; - } - if (name.length() > 1 && Character.isUpperCase(name.charAt(1)) && - Character.isLowerCase(name.charAt(0))){ - return name; - } - char chars[] = name.toCharArray(); - chars[0] = Character.toUpperCase(chars[0]); - return new String(chars); + public String getterAndSetterCapitalize(String name) { + if (name == null || name.length() == 0) { + return name; } + name = toVarName(name); + if (name.length() > 1 && Character.isUpperCase(name.charAt(1)) && + Character.isLowerCase(name.charAt(0))){ + return name; + } + char chars[] = name.toCharArray(); + chars[0] = Character.toUpperCase(chars[0]); + return new String(chars); + } public CodegenProperty fromProperty(String name, Property p) { if(p == null) { diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/JavaClientCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/JavaClientCodegen.java index 1475db64bf6..b4698ecc714 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/JavaClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/JavaClientCodegen.java @@ -87,6 +87,15 @@ public class JavaClientCodegen extends DefaultCodegen implements CodegenConfig { return outputFolder + "/" + sourceFolder + "/" + modelPackage().replace('.', File.separatorChar); } + @Override + public String toVarName(String name) { + if(reservedWords.contains(name)) + return escapeReservedWord(name); + else { + return name.replaceAll("-", "_"); + } + } + @Override public String getTypeDeclaration(Property p) { if(p instanceof ArrayProperty) { diff --git a/modules/swagger-codegen/src/test/scala/Java/JavaModelTest.scala b/modules/swagger-codegen/src/test/scala/Java/JavaModelTest.scala index 1e39a715eb6..33eb5f75b90 100644 --- a/modules/swagger-codegen/src/test/scala/Java/JavaModelTest.scala +++ b/modules/swagger-codegen/src/test/scala/Java/JavaModelTest.scala @@ -14,7 +14,6 @@ import scala.collection.JavaConverters._ @RunWith(classOf[JUnitRunner]) class JavaModelTest extends FlatSpec with Matchers { - it should "convert a simple java model" in { val model = new ModelImpl() .description("a sample model") @@ -322,4 +321,18 @@ class JavaModelTest extends FlatSpec with Matchers { vars.get(0).required should equal (true) vars.get(0).isNotContainer should equal (true) } + + it should "convert hyphens per issue 503" in { + val model = new ModelImpl() + .description("a sample model") + .property("created-at", new DateTimeProperty()) + + val codegen = new JavaClientCodegen() + val cm = codegen.fromModel("sample", model) + val vars = cm.vars + vars.get(0).baseName should be("created-at") + vars.get(0).getter should be ("getCreated_at") + vars.get(0).setter should be ("setCreated_at") + vars.get(0).name should be ("created_at") + } }