Should I incorporate Emily's and Scott's changes and commit this to 1.6?

Regards,
Amit

On Wed, Oct 15, 2008 at 12:24 PM, Bruce Johnson <[EMAIL PROTECTED]> wrote:

> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to