Package javax.jdo.spi

Class I18NHelper

java.lang.Object
javax.jdo.spi.I18NHelper

public class I18NHelper extends Object
Helper class for constructing messages from bundles. The intended usage of this class is to construct a new instance bound to a bundle, as in

I18NHelper msg = I18NHelper.getInstance("javax.jdo.Bundle");

This call uses the class loader that loaded the I18NHelper class to find the specified Bundle. The class provides two overloaded getInstance methods allowing to specify a different class loader: getInstance(Class cls) looks for a bundle called "Bundle.properties" located in the package of the specified class object and getInstance(String bundleName,ClassLoader loader) uses the specified class loader to find the bundle.

Subsequently, instance methods can be used to format message strings using the text from the bundle, as in

throw new JDOFatalInternalException (msg.msg("ERR_NoMetadata", cls.getName()));

Since:
1.0.1
Version:
1.1
  • Field Details

    • bundles

      private static Hashtable bundles
      Bundles that have already been loaded
    • helpers

      private static Hashtable helpers
      Helper instances that have already been created
    • locale

      private static Locale locale
      The default locale for this VM.
    • bundleName

      private final String bundleName
      The name of the bundle used by this instance of the helper.
    • bundle

      private ResourceBundle bundle
      The bundle used by this instance of the helper.
    • failure

      private Throwable failure
      Throwable if ResourceBundle couldn't be loaded
    • bundleSuffix

      private static final String bundleSuffix
      The unqualified standard name of a bundle.
      See Also:
  • Constructor Details

    • I18NHelper

      private I18NHelper()
      Constructor
    • I18NHelper

      private I18NHelper(String bundleName, ClassLoader loader)
      Constructor for an instance bound to a bundle.
      Parameters:
      bundleName - the name of the resource bundle
      loader - the class loader from which to load the resource bundle
  • Method Details

    • getInstance

      public static I18NHelper getInstance(String bundleName)
      An instance bound to a bundle. This method uses the current class loader to find the bundle.
      Parameters:
      bundleName - the name of the bundle
      Returns:
      the helper instance bound to the bundle
    • getInstance

      public static I18NHelper getInstance(Class cls)
      An instance bound to a bundle. This method figures out the bundle name for the class object's package and uses the class' class loader to find the bundle. Note, the specified class object must not be null.
      Parameters:
      cls - the class object from which to load the resource bundle
      Returns:
      the helper instance bound to the bundle
    • getInstance

      public static I18NHelper getInstance(String bundleName, ClassLoader loader)
      An instance bound to a bundle. This method uses the specified class loader to find the bundle. Note, the specified class loader must not be null.
      Parameters:
      bundleName - the name of the bundle
      loader - the class loader from which to load the resource bundle
      Returns:
      the helper instance bound to the bundle
    • msg

      public String msg(String messageKey)
      Message formatter
      Parameters:
      messageKey - the message key
      Returns:
      the resolved message text
    • msg

      public String msg(String messageKey, Object arg1)
      Message formatter
      Parameters:
      messageKey - the message key
      arg1 - the first argument
      Returns:
      the resolved message text
    • msg

      public String msg(String messageKey, Object arg1, Object arg2)
      Message formatter
      Parameters:
      messageKey - the message key
      arg1 - the first argument
      arg2 - the second argument
      Returns:
      the resolved message text
    • msg

      public String msg(String messageKey, Object arg1, Object arg2, Object arg3)
      Message formatter
      Parameters:
      messageKey - the message key
      arg1 - the first argument
      arg2 - the second argument
      arg3 - the third argument
      Returns:
      the resolved message text
    • msg

      public String msg(String messageKey, Object[] args)
      Message formatter
      Parameters:
      messageKey - the message key
      args - the array of arguments
      Returns:
      the resolved message text
    • msg

      public String msg(String messageKey, int arg)
      Message formatter
      Parameters:
      messageKey - the message key
      arg - the argument
      Returns:
      the resolved message text
    • msg

      public String msg(String messageKey, boolean arg)
      Message formatter
      Parameters:
      messageKey - the message key
      arg - the argument
      Returns:
      the resolved message text
    • getResourceBundle

      public ResourceBundle getResourceBundle()
      Returns the resource bundle used by this I18NHelper.
      Returns:
      the associated resource bundle
      Since:
      1.1
    • loadBundle

      private static final ResourceBundle loadBundle(String bundleName, ClassLoader loader)
      Load ResourceBundle by bundle name
      Parameters:
      bundleName - the name of the bundle
      loader - the class loader from which to load the resource bundle
      Returns:
      the ResourceBundle
    • assertBundle

      private void assertBundle()
      Assert resources available
      Throws:
      JDOFatalInternalException - if the resource bundle could not be loaded during construction.
      Since:
      1.1
    • assertBundle

      private void assertBundle(String key)
      Assert resources available
      Parameters:
      key - the message key
      Throws:
      JDOFatalInternalException - if the resource bundle could not be loaded during construction.
      Since:
      1.0.2
    • getMessage

      private static final String getMessage(ResourceBundle messages, String messageKey)
      Returns message as String
      Parameters:
      messages - the resource bundle
      messageKey - the message key
      Returns:
      the resolved message text
    • getMessage

      private static final String getMessage(ResourceBundle messages, String messageKey, Object[] msgArgs)
      Formats message by adding array of arguments
      Parameters:
      messages - the resource bundle
      messageKey - the message key
      msgArgs - an array of arguments to substitute into the message
      Returns:
      the resolved message text
    • getMessage

      private static final String getMessage(ResourceBundle messages, String messageKey, Object arg)
      Formats message by adding an Object argument.
      Parameters:
      messages - the resource bundle
      messageKey - the message key
      arg - the argument
      Returns:
      the resolved message text
    • getMessage

      private static final String getMessage(ResourceBundle messages, String messageKey, Object arg1, Object arg2)
      Formats message by adding two Object arguments.
      Parameters:
      messages - the resource bundle
      messageKey - the message key
      arg1 - the first argument
      arg2 - the second argument
      Returns:
      the resolved message text
    • getMessage

      private static final String getMessage(ResourceBundle messages, String messageKey, Object arg1, Object arg2, Object arg3)
      Formats message by adding three Object arguments.
      Parameters:
      messages - the resource bundle
      messageKey - the message key
      arg1 - the first argument
      arg2 - the second argument
      arg3 - the third argument
      Returns:
      the resolved message text
    • getMessage

      private static final String getMessage(ResourceBundle messages, String messageKey, int arg)
      Formats message by adding an int as an argument.
      Parameters:
      messages - the resource bundle
      messageKey - the message key
      arg - the argument
      Returns:
      the resolved message text
    • getMessage

      private static final String getMessage(ResourceBundle messages, String messageKey, boolean arg)
      Formats message by adding a boolean as an argument.
      Parameters:
      messages - the resource bundle
      messageKey - the message key
      arg - the argument
      Returns:
      the resolved message text
    • getPackageName

      private static final String getPackageName(String className)
      Returns the package portion of the specified class.
      Parameters:
      className - the name of the class from which to extract the package
      Returns:
      package portion of the specified class
    • getSystemClassLoaderPrivileged

      private static ClassLoader getSystemClassLoaderPrivileged()
      Get the system class loader. This must be done in a doPrivileged block because of security.