You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by to...@apache.org on 2008/03/18 09:07:16 UTC
svn commit: r638256 - in /harmony/enhanced/classlib/trunk/modules/beans/src:
main/java/java/beans/PropertyDescriptor.java
main/java/org/apache/harmony/beans/BeansUtils.java
test/java/org/apache/harmony/beans/tests/java/beans/PropertyDescriptorTest.java
Author: tonywu
Date: Tue Mar 18 01:07:13 2008
New Revision: 638256
URL: http://svn.apache.org/viewvc?rev=638256&view=rev
Log:
The get/set method should be created as locale independent
Modified:
harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/PropertyDescriptor.java
harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/BeansUtils.java
harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/PropertyDescriptorTest.java
Modified: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/PropertyDescriptor.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/PropertyDescriptor.java?rev=638256&r1=638255&r2=638256&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/PropertyDescriptor.java (original)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/PropertyDescriptor.java Tue Mar 18 01:07:13 2008
@@ -218,7 +218,7 @@
String createDefaultMethodName(String propertyName, String prefix) {
String result = null;
if (propertyName != null) {
- String bos = propertyName.substring(0, 1).toUpperCase();
+ String bos = BeansUtils.toASCIIUpperCase(propertyName.substring(0, 1));
String eos = propertyName.substring(1, propertyName.length());
result = prefix + bos + eos;
}
Modified: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/BeansUtils.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/BeansUtils.java?rev=638256&r1=638255&r2=638256&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/BeansUtils.java (original)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/BeansUtils.java Tue Mar 18 01:07:13 2008
@@ -26,4 +26,32 @@
public static final int getHashCode(boolean b) {
return b?1:0;
}
+
+ public static String toASCIILowerCase(String s) {
+ int len = s.length();
+ StringBuilder buffer = new StringBuilder(len);
+ for (int i = 0; i < len; i++) {
+ char c = s.charAt(i);
+ if ('A' <= c && c <= 'Z') {
+ buffer.append((char) (c + ('a' - 'A')));
+ } else {
+ buffer.append(c);
+ }
+ }
+ return buffer.toString();
+ }
+
+ public static String toASCIIUpperCase(String s) {
+ int len = s.length();
+ StringBuilder buffer = new StringBuilder(len);
+ for (int i = 0; i < len; i++) {
+ char c = s.charAt(i);
+ if ('a' <= c && c <= 'z') {
+ buffer.append((char) (c - ('a' - 'A')));
+ } else {
+ buffer.append(c);
+ }
+ }
+ return buffer.toString();
+ }
}
Modified: harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/PropertyDescriptorTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/PropertyDescriptorTest.java?rev=638256&r1=638255&r2=638256&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/PropertyDescriptorTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/PropertyDescriptorTest.java Tue Mar 18 01:07:13 2008
@@ -23,6 +23,7 @@
import java.beans.PropertyEditorSupport;
import java.io.Serializable;
import java.lang.reflect.Method;
+import java.util.Locale;
import junit.framework.TestCase;
@@ -1221,5 +1222,27 @@
PropertyDescriptor pd2 = new PropertyDescriptor("a",MockBean.class);
assertEquals(pd1, pd2);
assertEquals(pd1.hashCode(), pd2.hashCode());
+ }
+
+ private class MockBeanForTR {
+ int i;
+
+ public int getI() {
+ return i;
+ }
+
+ public void setI(int i) {
+ this.i = i;
+ }
+ }
+
+ public void testByLocale() throws IntrospectionException{
+ Locale backup = Locale.getDefault();
+ Locale.setDefault(new Locale("TR"));
+ try {
+ assertNotNull(new PropertyDescriptor("i", MockBeanForTR.class));
+ } finally {
+ Locale.setDefault(backup);
+ }
}
}