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"

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to