Let's not do this in 1.5.3. On Wed, Oct 15, 2008 at 12:11 PM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
> If we rename it FastStringMapImpl at the same time that would work. The > rename is useful because people using class-lookup to find gwt utility > classes cannot fail to realize it is an impl class. > > Of course, what I really want is a public JsStringMap api, and so consider > the fact that we are having to make this class public because we need to use > it as another plug for bumping up the priority for that API. Also, on the > tangential note of serialization that started this thread, consider how fast > a custom de-serializer could be made for JsStringMap :-). > > > > On Wed, Oct 15, 2008 at 11:42 AM, Scott Blum <[EMAIL PROTECTED]> wrote: > >> What if we move FastStringMap into >> http://code.google.com/p/google-web-toolkit/source/browse/#svn/trunk/user/src/com/google/gwt/user/client/impl >> ? >> >> On Wed, Oct 15, 2008 at 11:00 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote: >> >>> I do not think we want to make FastStringMap public where it is, though >>> this might be another good reason to accelerate creating a jscollection >>> package in GWT. >>> >>> >>> >>> >>> On Wed, Oct 15, 2008 at 10:07 AM, Amit Manjhi <[EMAIL PROTECTED]>wrote: >>> >>>> Hi John, >>>> >>>> Please review the attached patch which fixes >>>> http://code.google.com/p/google-web-toolkit/issues/detail?id=2862 As >>>> per Scott's suggestion in the comments, I changed the implementation to use >>>> FastStringMap. Since FastStringMap is in a different package, I had to make >>>> the class public and make some of the private fields protected. The change >>>> passes all the i18n tests. Finally, modulo everything looks good, should >>>> this go in 1_5_3? >>>> >>>> Regards, >>>> Amit >>>> >>>> Index: user/src/com/google/gwt/i18n/client/impl/ConstantMap.java >>>> =================================================================== >>>> --- user/src/com/google/gwt/i18n/client/impl/ConstantMap.java >>>> (revision 3731) >>>> +++ user/src/com/google/gwt/i18n/client/impl/ConstantMap.java (working >>>> copy) >>>> @@ -15,9 +15,10 @@ >>>> */ >>>> package com.google.gwt.i18n.client.impl; >>>> >>>> +import com.google.gwt.user.client.ui.FastStringMap; >>>> + >>>> import java.util.ArrayList; >>>> import java.util.Collection; >>>> -import java.util.HashMap; >>>> import java.util.Iterator; >>>> import java.util.Map; >>>> import java.util.Set; >>>> @@ -30,26 +31,15 @@ >>>> * specific, no elements are every removed from them and all elements >>>> are added >>>> * before the first user operation. >>>> */ >>>> -public class ConstantMap extends HashMap<String, String> { >>>> +public class ConstantMap extends FastStringMap<String> { >>>> >>>> - private static class DummyMapEntry implements Map.Entry<String, >>>> String> { >>>> - private final String key; >>>> + private static class DummyMapEntry extends >>>> FastStringMap.ImplMapEntry<String> { >>>> >>>> - private final String value; >>>> - >>>> DummyMapEntry(String key, String value) { >>>> - this.key = key; >>>> - this.value = value; >>>> + super(key, value); >>>> } >>>> >>>> - public String getKey() { >>>> - return key; >>>> - } >>>> - >>>> - public String getValue() { >>>> - return value; >>>> - } >>>> - >>>> + @Override >>>> public String setValue(String arg0) { >>>> throw new UnsupportedOperationException(); >>>> } >>>> Index: user/src/com/google/gwt/user/client/ui/FastStringMap.java >>>> =================================================================== >>>> --- user/src/com/google/gwt/user/client/ui/FastStringMap.java >>>> (revision 3731) >>>> +++ user/src/com/google/gwt/user/client/ui/FastStringMap.java (working >>>> copy) >>>> @@ -31,16 +31,23 @@ >>>> * Special-case Map implementation which imposes limits on the types of >>>> keys >>>> * that can be used in return for much faster speed. In specific, only >>>> strings >>>> * that could be added to a JavaScript object as keys are valid. >>>> + * >>>> + * @param <T> the type of values. >>>> */ >>>> +public class FastStringMap<T> extends AbstractMap<String, T> { >>>> >>>> -class FastStringMap<T> extends AbstractMap<String, T> { >>>> - private static class ImplMapEntry<T> implements Map.Entry<String, T> >>>> { >>>> + /** >>>> + * Internal map entry. >>>> + * >>>> + * @param <T> The type of values. >>>> + */ >>>> + protected static class ImplMapEntry<T> implements Map.Entry<String, >>>> T> { >>>> >>>> private String key; >>>> >>>> private T value; >>>> >>>> - ImplMapEntry(String key, T value) { >>>> + protected ImplMapEntry(String key, T value) { >>>> this.key = key; >>>> this.value = value; >>>> } >>>> @@ -99,7 +106,7 @@ >>>> /* >>>> * Accesses need to be prefixed with ':' to prevent conflict with >>>> built-in >>>> * JavaScript properties. >>>> - */ >>>> + */ >>>> private JavaScriptObject map; >>>> >>>> public FastStringMap() { >>>> >>>> >>>> >>>> >>> >>> >>> -- >>> "There are only 10 types of people in the world: Those who understand >>> binary, and those who don't" >>> >> >> > > > -- > "There are only 10 types of people in the world: Those who understand > binary, and those who don't" > > > > --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---
