diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java index 3be5473c0508..79d98451d51b 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java @@ -3251,7 +3251,7 @@ public class DefaultCodegen { word = m.replaceAll(rep); } - // Remove all underscores + // Remove all underscores (underscore_case to camelCase) p = Pattern.compile("(_)(.)"); m = p.matcher(word); while (m.find()) { @@ -3259,6 +3259,14 @@ public class DefaultCodegen { m = p.matcher(word); } + // Remove all hyphens (hyphen-case to camelCase) + p = Pattern.compile("(-)(.)"); + m = p.matcher(word); + while (m.find()) { + word = m.replaceFirst(m.group(2).toUpperCase()); + m = p.matcher(word); + } + if (lowercaseFirstLetter && word.length() > 0) { word = word.substring(0, 1).toLowerCase() + word.substring(1); } diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/CodegenTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/CodegenTest.java index 91fa6ffc7ff4..e899e1800ddd 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/CodegenTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/CodegenTest.java @@ -36,6 +36,8 @@ public class CodegenTest { Assert.assertEquals(codegen.camelize("foo_bar_baz"), "FooBarBaz"); Assert.assertEquals(codegen.camelize("foo/bar.baz"), "FooBarBaz"); Assert.assertEquals(codegen.camelize("/foo/bar/baz.qux/corge"), "FooBarBazQuxCorge"); + Assert.assertEquals(codegen.camelize("foo-bar"), "FooBar"); + Assert.assertEquals(codegen.camelize("foo-bar-xyzzy"), "FooBarXyzzy"); } @Test(description = "read a file upload param from a 2.0 spec")