com.google.gwt.i18n.linker

## Class LocalePropertyProviderGenerator

- java.lang.Object
- - com.google.gwt.i18n.linker.LocalePropertyProviderGenerator

- All Implemented Interfaces:
    PropertyProviderGenerator

      public class LocalePropertyProviderGenerator
      extends java.lang.Object
      implements PropertyProviderGenerator

  Generates a property provider implementation for the "locale" property.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static java.util.regex.Pattern` | `COOKIE_PATTERN`
    `static java.lang.String` | `LOCALE_COOKIE`
    `static java.lang.String` | `LOCALE_QUERYPARAM`
    `static java.lang.String` | `LOCALE_SEARCHORDER`
    `static java.lang.String` | `LOCALE_USEMETA`
    `static java.lang.String` | `LOCALE_USERAGENT`
    `protected static java.util.regex.Pattern` | `QUERYPARAM_PATTERN`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LocalePropertyProviderGenerator()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `generate(TreeLogger logger, java.util.SortedSet<java.lang.String> possibleValues, java.lang.String fallback, java.util.SortedSet<ConfigurationProperty> configProperties)` Generate a property provider.
    `protected void` | `generateCookieLookup(TreeLogger logger, com.google.gwt.user.rebind.SourceWriter body, java.lang.String cookieName)` Generate JS code that looks up the locale value from a cookie.
    `protected void` | `generateInheritanceLookup(TreeLogger logger, com.google.gwt.user.rebind.SourceWriter body)` Generate JS code that takes the value of the "locale" variable and finds parent locales until the value is a supported locale or the default locale.
    `protected void` | `generateMetaLookup(TreeLogger logger, com.google.gwt.user.rebind.SourceWriter body)` Generate JS code to fetch the locale from a meta property.
    `protected void` | `generateQueryParamLookup(TreeLogger logger, com.google.gwt.user.rebind.SourceWriter body, java.lang.String queryParam)` Generate JS code to get the locale from a query parameter.
    `protected void` | `generateUserAgentLookup(TreeLogger logger, com.google.gwt.user.rebind.SourceWriter body)` Generate JS code to fetch the locale from the user agent's compile-time locale.
    `protected static boolean` | `isTrue(java.lang.String value)` Return true when the supplied value represents a true/yes/on value.
    `protected boolean` | `validateCookieName(java.lang.String cookieName)` Validate that a name is a valid cookie name.
    `protected boolean` | `validateQueryParam(java.lang.String queryParam)` Validate that a value is a valid query parameter name.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### LOCALE_QUERYPARAM

          public static final java.lang.String LOCALE_QUERYPARAM

      See Also:
        Constant Field Values

    - #### LOCALE_COOKIE

          public static final java.lang.String LOCALE_COOKIE

      See Also:
        Constant Field Values

    - #### LOCALE_SEARCHORDER

          public static final java.lang.String LOCALE_SEARCHORDER

      See Also:
        Constant Field Values

    - #### LOCALE_USEMETA

          public static final java.lang.String LOCALE_USEMETA

      See Also:
        Constant Field Values

    - #### LOCALE_USERAGENT

          public static final java.lang.String LOCALE_USERAGENT

      See Also:
        Constant Field Values

    - #### COOKIE_PATTERN

          protected static final java.util.regex.Pattern COOKIE_PATTERN

    - #### QUERYPARAM_PATTERN

          protected static final java.util.regex.Pattern QUERYPARAM_PATTERN

  - ### Constructor Detail

    - #### LocalePropertyProviderGenerator

          public LocalePropertyProviderGenerator()

  - ### Method Detail

    - #### isTrue

          protected static boolean isTrue(java.lang.String value)

      Return true when the supplied value represents a true/yes/on value.
      Parameters:
        `value` -
      Returns:
        true if the string represents true/yes/on

    - #### generate

          public java.lang.String generate(TreeLogger logger,
                                  java.util.SortedSet<java.lang.String> possibleValues,
                                  java.lang.String fallback,
                                  java.util.SortedSet<ConfigurationProperty> configProperties)
                                    throws UnableToCompleteException

      Description copied from interface: `PropertyProviderGenerator`
      Generate a property provider.
      Specified by:
        `generate` in interface `PropertyProviderGenerator`
      Parameters:
        `logger` - TreeLogger
        `possibleValues` - the possible values of this property
        `fallback` - the fallback value for this property, or null
        `configProperties` - the configuration properties for this module
      Returns:
        the JS source of the property provider (the complete body of a JS function taking no arguments, including open/close braces), or null to use the default implementation in the property-provider tag
      Throws:
        `UnableToCompleteException` - after logging the message if processing is unable to continue

    - #### generateCookieLookup

          protected void generateCookieLookup(TreeLogger logger,
                                  com.google.gwt.user.rebind.SourceWriter body,
                                  java.lang.String cookieName)
                                       throws UnableToCompleteException

      Generate JS code that looks up the locale value from a cookie.
      Parameters:
        `logger` - logger to use
        `body` -
        `cookieName` -
      Throws:
        `UnableToCompleteException`

    - #### generateInheritanceLookup

          protected void generateInheritanceLookup(TreeLogger logger,
                                       com.google.gwt.user.rebind.SourceWriter body)
                                            throws UnableToCompleteException

      Generate JS code that takes the value of the "locale" variable and finds parent locales until the value is a supported locale or the default locale.
      Parameters:
        `logger` - logger to use
        `body` -
      Throws:
        `UnableToCompleteException`

    - #### generateMetaLookup

          protected void generateMetaLookup(TreeLogger logger,
                                com.google.gwt.user.rebind.SourceWriter body)
                                     throws UnableToCompleteException

      Generate JS code to fetch the locale from a meta property.
      Parameters:
        `logger` - logger to use
        `body` -
      Throws:
        `UnableToCompleteException`

    - #### generateQueryParamLookup

          protected void generateQueryParamLookup(TreeLogger logger,
                                      com.google.gwt.user.rebind.SourceWriter body,
                                      java.lang.String queryParam)
                                           throws UnableToCompleteException

      Generate JS code to get the locale from a query parameter.
      Parameters:
        `logger` - logger to use
        `body` - where to append JS output
        `queryParam` - the query parameter to use
      Throws:
        `UnableToCompleteException`

    - #### generateUserAgentLookup

          protected void generateUserAgentLookup(TreeLogger logger,
                                     com.google.gwt.user.rebind.SourceWriter body)
                                          throws UnableToCompleteException

      Generate JS code to fetch the locale from the user agent's compile-time locale.
      Parameters:
        `logger` - logger to use
        `body` -
      Throws:
        `UnableToCompleteException`

    - #### validateCookieName

          protected boolean validateCookieName(java.lang.String cookieName)

      Validate that a name is a valid cookie name.
      Parameters:
        `cookieName` -
      Returns:
        true if cookieName is an acceptable cookie name

    - #### validateQueryParam

          protected boolean validateQueryParam(java.lang.String queryParam)

      Validate that a value is a valid query parameter name.
      Parameters:
        `queryParam` -
      Returns:
        true if queryParam is a valid query parameter name.