LocalizableSupport
Date: 2016-04-28

org.apache.xmlgraphics.util.i18n

## Class LocalizableSupport

- java.lang.Object
- - org.apache.xmlgraphics.util.i18n.LocalizableSupport

- All Implemented Interfaces:
    Localizable

      public class LocalizableSupport
      extends java.lang.Object
      implements Localizable

  This class provides a default implementation of the Localizable interface. You can use it as a base class or as a member field and delegates various work to it.

  For example, to implement Localizable, the following code can be used:

        package mypackage;
        ...
        public class MyClass implements Localizable {
            // This code fragment requires a file named
            // 'mypackage/resources/Messages.properties', or a
            // 'mypackage.resources.Messages' class which extends
            // java.util.ResourceBundle, accessible using the current
            // classpath.
            LocalizableSupport localizableSupport =
                new LocalizableSupport("mypackage.resources.Messages");

            public void setLocale(Locale l) {
                localizableSupport.setLocale(l);
            }
            public Local getLocale() {
                return localizableSupport.getLocale();
            }
            public String formatMessage(String key, Object[] args) {
                return localizableSupport.formatMessage(key, args);
            }
        }

  The algorithm for the Locale lookup in a LocalizableSupport object is:
  - if a Locale has been set by a call to setLocale(), use this Locale, else,
  - if a Locale has been set by a call to the setDefaultLocale() method of a LocalizableSupport object in the current LocaleGroup, use this Locale, else,
  - use the object returned by Locale.getDefault() (and set by Locale.setDefault()).
  This offers the possibility to have a different Locale for each object, a Locale for a group of object and/or a Locale for the JVM instance.

  Note: if no group is specified a LocalizableSupport object belongs to a default group common to each instance of LocalizableSupport.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.lang.String` | `bundleName` The resource bundle classname.
    `protected java.lang.ClassLoader` | `classLoader` The classloader to use to create the resource bundle.
    `protected java.util.Locale` | `locale` The current locale.
    `protected LocaleGroup` | `localeGroup` The locale group to which this object belongs.
    `protected java.util.ResourceBundle` | `resourceBundle` The resources
    `protected java.util.Locale` | `usedLocale` The locale in use.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LocalizableSupport(java.lang.String s)` Same as LocalizableSupport(s, null).
    `LocalizableSupport(java.lang.String s, java.lang.ClassLoader cl)` Creates a new Localizable object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `formatMessage(java.lang.String key, java.lang.Object[] args)` Implements `Localizable.formatMessage(String,Object[])`.
    `java.util.Locale` | `getDefaultLocale()` Implements `ExtendedLocalizable.getDefaultLocale()`.
    `java.util.Locale` | `getLocale()` Implements `Localizable.getLocale()`.
    `LocaleGroup` | `getLocaleGroup()` Implements `ExtendedLocalizable.getLocaleGroup()`.
    `java.util.ResourceBundle` | `getResourceBundle()` Implements `ExtendedLocalizable.getResourceBundle()`.
    `void` | `setDefaultLocale(java.util.Locale l)` Implements `ExtendedLocalizable.setDefaultLocale(Locale)`.
    `void` | `setLocale(java.util.Locale l)` Implements `Localizable.setLocale(Locale)`.
    `void` | `setLocaleGroup(LocaleGroup lg)` Implements `ExtendedLocalizable.setLocaleGroup(LocaleGroup)`.

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

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

- - ### Field Detail

    - #### localeGroup

          protected LocaleGroup localeGroup

      The locale group to which this object belongs.

    - #### bundleName

          protected java.lang.String bundleName

      The resource bundle classname.

    - #### classLoader

          protected java.lang.ClassLoader classLoader

      The classloader to use to create the resource bundle.

    - #### locale

          protected java.util.Locale locale

      The current locale.

    - #### usedLocale

          protected java.util.Locale usedLocale

      The locale in use.

    - #### resourceBundle

          protected java.util.ResourceBundle resourceBundle

      The resources

  - ### Constructor Detail

    - #### LocalizableSupport

          public LocalizableSupport(java.lang.String s)

      Same as LocalizableSupport(s, null).

    - #### LocalizableSupport

          public LocalizableSupport(java.lang.String s,
                            java.lang.ClassLoader cl)

      Creates a new Localizable object. The resource bundle class name is required allows the use of custom classes of resource bundles.
      Parameters:
        `s` - must be the name of the class to use to get the appropriate resource bundle given the current locale.
        `cl` - is the classloader used to create the resource bundle, or null.
      See Also:
        `ResourceBundle`

  - ### Method Detail

    - #### setLocale

          public void setLocale(java.util.Locale l)

      Implements `Localizable.setLocale(Locale)`.
      Specified by:
        `setLocale` in interface `Localizable`
      Parameters:
        `l` - The locale to set.

    - #### getLocale

          public java.util.Locale getLocale()

      Implements `Localizable.getLocale()`.
      Specified by:
        `getLocale` in interface `Localizable`

    - #### setLocaleGroup

          public void setLocaleGroup(LocaleGroup lg)

      Implements `ExtendedLocalizable.setLocaleGroup(LocaleGroup)`.

    - #### getLocaleGroup

          public LocaleGroup getLocaleGroup()

      Implements `ExtendedLocalizable.getLocaleGroup()`.

    - #### setDefaultLocale

          public void setDefaultLocale(java.util.Locale l)

      Implements `ExtendedLocalizable.setDefaultLocale(Locale)`. Later invocations of the instance methods will lead to update the resource bundle used.

    - #### getDefaultLocale

          public java.util.Locale getDefaultLocale()

      Implements `ExtendedLocalizable.getDefaultLocale()`.

    - #### formatMessage

          public java.lang.String formatMessage(java.lang.String key,
                                       java.lang.Object[] args)

      Implements `Localizable.formatMessage(String,Object[])`.
      Specified by:
        `formatMessage` in interface `Localizable`
      Parameters:
        `key` - The key used to retreive the message from the resource bundle.
        `args` - The objects that compose the message.

    - #### getResourceBundle

          public java.util.ResourceBundle getResourceBundle()

      Implements `ExtendedLocalizable.getResourceBundle()`.