diff --git a/java/openapi/src/com/intellij/psi/util/PropertyUtil.java b/java/openapi/src/com/intellij/psi/util/PropertyUtil.java index e60bded0ee71..b28d808c2a35 100644 --- a/java/openapi/src/com/intellij/psi/util/PropertyUtil.java +++ b/java/openapi/src/com/intellij/psi/util/PropertyUtil.java @@ -296,7 +296,7 @@ public class PropertyUtil { } public static String suggestGetterName(@NotNull String propertyName, @Nullable PsiType propertyType, @NonNls String existingGetterName) { - @NonNls StringBuffer name = new StringBuffer(StringUtil.capitalize(propertyName)); + @NonNls StringBuffer name = new StringBuffer(StringUtil.capitalizeWithJavaBeanConvention(propertyName)); if (isBoolean(propertyType)) { if (existingGetterName == null || !existingGetterName.startsWith("get")) { name.insert(0, "is"); @@ -319,12 +319,12 @@ public class PropertyUtil { @NonNls public static String[] suggestGetterNames(String propertyName) { - final String str = StringUtil.capitalize(propertyName); + final String str = StringUtil.capitalizeWithJavaBeanConvention(propertyName); return new String[] { "is" + str, "get" + str }; } public static String suggestSetterName(String propertyName) { - @NonNls StringBuffer name = new StringBuffer(StringUtil.capitalize(propertyName)); + @NonNls StringBuffer name = new StringBuffer(StringUtil.capitalizeWithJavaBeanConvention(propertyName)); name.insert(0, "set"); return name.toString(); } diff --git a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java index 5a196ff2aa7c..8de7b5992d80 100644 --- a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java +++ b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java @@ -610,6 +610,14 @@ public class StringUtil { return toUpperCase(s.charAt(0)) + s.substring(1); } + @NotNull + public static String capitalizeWithJavaBeanConvention(@NotNull String s) { + if (s.length() > 1 && Character.isUpperCase(s.charAt(1))) { + return s; + } + return capitalize(s); + } + public static int stringHashCode(CharSequence chars) { if (chars instanceof String) return chars.hashCode(); if (chars instanceof CharSequenceWithStringHash) return chars.hashCode();