# HG changeset patch # User Jaroslav Tulach # Date 1380328998 -7200 # Node ID 66fdb47061aac13dd4197aa7f454e80a5223a26b # Parent 751852f49324d58e388f52afa73605203390acfc Some trivial implementations of methods that work with Locale diff -r 751852f49324 -r 66fdb47061aa rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/CompareStringsTest.java --- a/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/CompareStringsTest.java Sat Sep 28 02:11:01 2013 +0200 +++ b/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/CompareStringsTest.java Sat Sep 28 02:43:18 2013 +0200 @@ -20,6 +20,7 @@ import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; +import java.util.Locale; import org.apidesign.bck2brwsr.vmtest.Compare; import org.apidesign.bck2brwsr.vmtest.VMTest; import org.testng.annotations.Factory; @@ -161,6 +162,19 @@ assert res.equals("ba") : "Expecting ba: " + res; return res; } + + @Compare public String localeUS() { + return Locale.US.toString(); + } + + @Compare public String localeFrench() { + return Locale.FRENCH.toString(); + } + + + @Compare public String formatSimple() { + return String.format((Locale)null, "Hello %s!", "World"); + } @Factory public static Object[] create() { diff -r 751852f49324 -r 66fdb47061aa rt/emul/mini/src/main/java/java/lang/String.java --- a/rt/emul/mini/src/main/java/java/lang/String.java Sat Sep 28 02:11:01 2013 +0200 +++ b/rt/emul/mini/src/main/java/java/lang/String.java Sat Sep 28 02:43:18 2013 +0200 @@ -27,6 +27,8 @@ import java.io.UnsupportedEncodingException; import java.util.Comparator; +import java.util.Locale; +import java.util.Objects; import org.apidesign.bck2brwsr.core.ExtraJavaScript; import org.apidesign.bck2brwsr.core.JavaScriptBody; import org.apidesign.bck2brwsr.core.JavaScriptOnly; @@ -2454,7 +2456,9 @@ * @see java.lang.String#toUpperCase(Locale) * @since 1.1 */ -// public String toLowerCase(Locale locale) { + public String toLowerCase(java.util.Locale locale) { + return toLowerCase(); + } // if (locale == null) { // throw new NullPointerException(); // } @@ -2569,7 +2573,7 @@ */ @JavaScriptBody(args = {}, body = "return this.toLowerCase();") public String toLowerCase() { - throw new UnsupportedOperationException("Should be supported but without connection to locale"); + return null; } /** @@ -2620,8 +2624,10 @@ * @see java.lang.String#toLowerCase(Locale) * @since 1.1 */ + public String toUpperCase(Locale locale) { + return toUpperCase(); + } /* not for javascript - public String toUpperCase(Locale locale) { if (locale == null) { throw new NullPointerException(); } @@ -2735,7 +2741,7 @@ */ @JavaScriptBody(args = {}, body = "return this.toUpperCase();") public String toUpperCase() { - throw new UnsupportedOperationException(); + return null; } /** @@ -2846,7 +2852,7 @@ * @since 1.5 */ public static String format(String format, Object ... args) { - throw new UnsupportedOperationException(); + return format((Locale)null, format, args); } /** @@ -2889,9 +2895,14 @@ * @see java.util.Formatter * @since 1.5 */ -// public static String format(Locale l, String format, Object ... args) { -// return new Formatter(l).format(format, args).toString(); -// } + public static String format(Locale l, String format, Object ... args) { + String p = format; + for (int i = 0; i < args.length; i++) { + p = p.replaceFirst("%s", Objects.toString(args[i])); + } + return p; + // return new Formatter(l).format(format, args).toString(); + } /** * Returns the string representation of the Object argument.