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 2d83af52f59..b2dc9e89d14 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 @@ -1256,7 +1256,7 @@ public String toGetter(String name) { } /** - * Output the Getter name, e.g. getSize + * Output the Setter name, e.g. setSize * * @param name the name of the property * @return setter name based on naming convention diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java index 3cec2d94990..49e779cf42f 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java @@ -1300,10 +1300,12 @@ public void setSupportJava6(boolean value) { this.supportJava6 = value; } + @Override public String toRegularExpression(String pattern) { return escapeText(pattern); } + @Override public boolean convertPropertyToBoolean(String propertyKey) { boolean booleanValue = false; if (additionalProperties.containsKey(propertyKey)) { @@ -1313,6 +1315,7 @@ public boolean convertPropertyToBoolean(String propertyKey) { return booleanValue; } + @Override public void writePropertyBack(String propertyKey, boolean value) { additionalProperties.put(propertyKey, value); } @@ -1323,10 +1326,31 @@ public void writePropertyBack(String propertyKey, boolean value) { * @param name the name of the property * @return partial getter name based on naming convention */ + @Override public String toBooleanGetter(String name) { return getterAndSetterCapitalize(name); } + /** + * Camelize the method name of the getter and setter for Java + * Except when the second letter of the field name is already uppercase + * Refer to section 8.8: Capitalization of inferred names of the JavaBeans API specification + * http://download.oracle.com/otn-pub/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/beans.101.pdf) + * + * @param name string to be camelized + * @return Camelized string + */ + @Override + public String getterAndSetterCapitalize(String name) { + if (name == null || name.length() == 0) { + return name; + } + if (name.length() > 1 && Character.isUpperCase(name.charAt(1))){ + return name; + } + return camelize(toVarName(name)); + } + @Override public String sanitizeTag(String tag) { tag = camelize(underscore(sanitizeName(tag))); diff --git a/modules/swagger-codegen/src/main/resources/JavaSpring/beanValidationCore.mustache b/modules/swagger-codegen/src/main/resources/JavaSpring/beanValidationCore.mustache index 4b7b561ce70..29d043cc770 100644 --- a/modules/swagger-codegen/src/main/resources/JavaSpring/beanValidationCore.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaSpring/beanValidationCore.mustache @@ -1,4 +1,4 @@ -{{#pattern}}@Pattern(regexp="{{{pattern}}}") {{/pattern}}{{! +{{#pattern}}@Pattern(regexp="{{{pattern}}}"{{#vendorExtensions.x-pattern-message}}, message="{{vendorExtensions.x-pattern-message}}"{{/vendorExtensions.x-pattern-message}}) {{/pattern}}{{! minLength && maxLength set }}{{#minLength}}{{#maxLength}}@Size(min={{minLength}},max={{maxLength}}) {{/maxLength}}{{/minLength}}{{! minLength set, maxLength not diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/java/JavaModelTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/java/JavaModelTest.java index 5a610b1fbea..5c81932da64 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/java/JavaModelTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/java/JavaModelTest.java @@ -387,8 +387,8 @@ public void secondCharUpperCaseNamesTest() { final CodegenProperty property = cm.vars.get(0); Assert.assertEquals(property.baseName, "pId"); - Assert.assertEquals(property.getter, "getPId"); - Assert.assertEquals(property.setter, "setPId"); + Assert.assertEquals(property.getter, "getpId"); + Assert.assertEquals(property.setter, "setpId"); Assert.assertEquals(property.datatype, "String"); Assert.assertEquals(property.name, "pId"); Assert.assertEquals(property.defaultValue, "null"); @@ -413,8 +413,8 @@ public void firstTwoUpperCaseLetterNamesTest() { final CodegenProperty property = cm.vars.get(0); Assert.assertEquals(property.baseName, "ATTName"); - Assert.assertEquals(property.getter, "getAtTName"); - Assert.assertEquals(property.setter, "setAtTName"); + Assert.assertEquals(property.getter, "getATTName"); + Assert.assertEquals(property.setter, "setATTName"); Assert.assertEquals(property.datatype, "String"); Assert.assertEquals(property.name, "atTName"); Assert.assertEquals(property.defaultValue, "null");