org.apache.batik.i18n
Class LocalizableSupport

java.lang.Object
  extended by org.apache.batik.i18n.LocalizableSupport
All Implemented Interfaces:
Localizable

public class LocalizableSupport
extends 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: 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
protected  String bundleName
          The resource bundle classname.
protected  ClassLoader classLoader
          The classloader to use to create the resource bundle.
protected  Locale locale
          The current locale.
protected  LocaleGroup localeGroup
          The locale group to which this object belongs.
protected  Locale usedLocale
          The locale in use.
 
Constructor Summary
LocalizableSupport(String s)
          Same as LocalizableSupport(s, null).
LocalizableSupport(String s, Class cls)
          Same as LocalizableSupport(cls, null).
LocalizableSupport(String s, Class cls, ClassLoader cl)
          Same as LocalizableSupport(cls, null).
LocalizableSupport(String s, ClassLoader cl)
          Creates a new Localizable object.
 
Method Summary
 String formatMessage(String key, Object[] args)
          Implements Localizable.formatMessage(String,Object[]).
 int getCharacter(String key)
           
protected  Locale getCurrentLocale()
           
 Locale getDefaultLocale()
          Implements ExtendedLocalizable.getDefaultLocale().
 int getInteger(String key)
          Returns the integer mapped with the given string
 Locale getLocale()
          Implements Localizable.getLocale().
 LocaleGroup getLocaleGroup()
          Implements ExtendedLocalizable.getLocaleGroup().
 ResourceBundle getResourceBundle()
          Here for backwards compatability
protected  ResourceBundle getResourceBundle(int i)
           
 String getString(String key)
           
protected  boolean hasNextResourceBundle(int i)
           
protected  ResourceBundle lookupResourceBundle(String bundle, Class theClass)
           
 void setDefaultLocale(Locale l)
          Implements ExtendedLocalizable.setDefaultLocale(Locale).
 void setLocale(Locale l)
          Implements Localizable.setLocale(Locale).
 void setLocaleGroup(LocaleGroup lg)
          Implements ExtendedLocalizable.setLocaleGroup(LocaleGroup).
protected  boolean setUsedLocale()
          returns true if the locale is different from the previously used locale.
 
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 String bundleName
The resource bundle classname.


classLoader

protected ClassLoader classLoader
The classloader to use to create the resource bundle.


locale

protected Locale locale
The current locale.


usedLocale

protected Locale usedLocale
The locale in use.

Constructor Detail

LocalizableSupport

public LocalizableSupport(String s,
                          Class cls)
Same as LocalizableSupport(cls, null).


LocalizableSupport

public LocalizableSupport(String s,
                          Class cls,
                          ClassLoader cl)
Same as LocalizableSupport(cls, null).


LocalizableSupport

public LocalizableSupport(String s)
Same as LocalizableSupport(s, null).


LocalizableSupport

public LocalizableSupport(String s,
                          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(Locale l)
Implements Localizable.setLocale(Locale).

Specified by:
setLocale in interface Localizable
Parameters:
l - The locale to set.

getLocale

public 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(Locale l)
Implements ExtendedLocalizable.setDefaultLocale(Locale). Later invocations of the instance methods will lead to update the resource bundle used.


getDefaultLocale

public Locale getDefaultLocale()
Implements ExtendedLocalizable.getDefaultLocale().


formatMessage

public String formatMessage(String key,
                            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.

getCurrentLocale

protected Locale getCurrentLocale()

setUsedLocale

protected boolean setUsedLocale()
returns true if the locale is different from the previously used locale. Also sets 'usedLocale' to the current locale.


getResourceBundle

public ResourceBundle getResourceBundle()
Here for backwards compatability


hasNextResourceBundle

protected boolean hasNextResourceBundle(int i)

lookupResourceBundle

protected ResourceBundle lookupResourceBundle(String bundle,
                                              Class theClass)

getResourceBundle

protected ResourceBundle getResourceBundle(int i)

getString

public String getString(String key)
                 throws MissingResourceException
Throws:
MissingResourceException

getInteger

public int getInteger(String key)
               throws MissingResourceException
Returns the integer mapped with the given string

Parameters:
key - a key of the resource bundle
Throws:
MissingResourceException - if key is not the name of a resource

getCharacter

public int getCharacter(String key)
                 throws MissingResourceException
Throws:
MissingResourceException


Copyright © 2008 Apache Software Foundation. All Rights Reserved.