Package javax.jdo.spi

Class I18NHelper


  • public class I18NHelper
    extends java.lang.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 Summary

      Fields 
      Modifier and Type Field Description
      private java.util.ResourceBundle bundle
      The bundle used by this instance of the helper.
      private java.lang.String bundleName
      The name of the bundle used by this instance of the helper.
      private static java.util.Hashtable bundles
      Bundles that have already been loaded
      private static java.lang.String bundleSuffix
      The unqualified standard name of a bundle.
      private java.lang.Throwable failure
      Throwable if ResourceBundle couldn't be loaded
      private static java.util.Hashtable helpers
      Helper instances that have already been created
      private static java.util.Locale locale
      The default locale for this VM.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private I18NHelper()
      Constructor
      private I18NHelper​(java.lang.String bundleName, java.lang.ClassLoader loader)
      Constructor for an instance bound to a bundle.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void assertBundle()
      Assert resources available
      private void assertBundle​(java.lang.String key)
      Assert resources available
      static I18NHelper getInstance​(java.lang.Class cls)
      An instance bound to a bundle.
      static I18NHelper getInstance​(java.lang.String bundleName)
      An instance bound to a bundle.
      static I18NHelper getInstance​(java.lang.String bundleName, java.lang.ClassLoader loader)
      An instance bound to a bundle.
      private static java.lang.String getMessage​(java.util.ResourceBundle messages, java.lang.String messageKey)
      Returns message as String
      private static java.lang.String getMessage​(java.util.ResourceBundle messages, java.lang.String messageKey, boolean arg)
      Formats message by adding a boolean as an argument.
      private static java.lang.String getMessage​(java.util.ResourceBundle messages, java.lang.String messageKey, int arg)
      Formats message by adding an int as an argument.
      private static java.lang.String getMessage​(java.util.ResourceBundle messages, java.lang.String messageKey, java.lang.Object arg)
      Formats message by adding an Object argument.
      private static java.lang.String getMessage​(java.util.ResourceBundle messages, java.lang.String messageKey, java.lang.Object[] msgArgs)
      Formats message by adding array of arguments
      private static java.lang.String getMessage​(java.util.ResourceBundle messages, java.lang.String messageKey, java.lang.Object arg1, java.lang.Object arg2)
      Formats message by adding two Object arguments.
      private static java.lang.String getMessage​(java.util.ResourceBundle messages, java.lang.String messageKey, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
      Formats message by adding three Object arguments.
      private static java.lang.String getPackageName​(java.lang.String className)
      Returns the package portion of the specified class.
      java.util.ResourceBundle getResourceBundle()
      Returns the resource bundle used by this I18NHelper.
      private static java.lang.ClassLoader getSystemClassLoaderPrivileged()
      Get the system class loader.
      private static java.util.ResourceBundle loadBundle​(java.lang.String bundleName, java.lang.ClassLoader loader)
      Load ResourceBundle by bundle name
      java.lang.String msg​(java.lang.String messageKey)
      Message formatter
      java.lang.String msg​(java.lang.String messageKey, boolean arg)
      Message formatter
      java.lang.String msg​(java.lang.String messageKey, int arg)
      Message formatter
      java.lang.String msg​(java.lang.String messageKey, java.lang.Object arg1)
      Message formatter
      java.lang.String msg​(java.lang.String messageKey, java.lang.Object[] args)
      Message formatter
      java.lang.String msg​(java.lang.String messageKey, java.lang.Object arg1, java.lang.Object arg2)
      Message formatter
      java.lang.String msg​(java.lang.String messageKey, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
      Message formatter
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • bundles

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

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

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

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

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

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

        private static final java.lang.String bundleSuffix
        The unqualified standard name of a bundle.
        See Also:
        Constant Field Values
    • Constructor Detail

      • I18NHelper

        private I18NHelper()
        Constructor
      • I18NHelper

        private I18NHelper​(java.lang.String bundleName,
                           java.lang.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 Detail

      • getInstance

        public static I18NHelper getInstance​(java.lang.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​(java.lang.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​(java.lang.String bundleName,
                                             java.lang.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 java.lang.String msg​(java.lang.String messageKey)
        Message formatter
        Parameters:
        messageKey - the message key
        Returns:
        the resolved message text
      • msg

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

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

        public java.lang.String msg​(java.lang.String messageKey,
                                    java.lang.Object arg1,
                                    java.lang.Object arg2,
                                    java.lang.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 java.lang.String msg​(java.lang.String messageKey,
                                    java.lang.Object[] args)
        Message formatter
        Parameters:
        messageKey - the message key
        args - the array of arguments
        Returns:
        the resolved message text
      • msg

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

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

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

        private static final java.util.ResourceBundle loadBundle​(java.lang.String bundleName,
                                                                 java.lang.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​(java.lang.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 java.lang.String getMessage​(java.util.ResourceBundle messages,
                                                         java.lang.String messageKey)
        Returns message as String
        Parameters:
        messages - the resource bundle
        messageKey - the message key
        Returns:
        the resolved message text
      • getMessage

        private static final java.lang.String getMessage​(java.util.ResourceBundle messages,
                                                         java.lang.String messageKey,
                                                         java.lang.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 java.lang.String getMessage​(java.util.ResourceBundle messages,
                                                         java.lang.String messageKey,
                                                         java.lang.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 java.lang.String getMessage​(java.util.ResourceBundle messages,
                                                         java.lang.String messageKey,
                                                         java.lang.Object arg1,
                                                         java.lang.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 java.lang.String getMessage​(java.util.ResourceBundle messages,
                                                         java.lang.String messageKey,
                                                         java.lang.Object arg1,
                                                         java.lang.Object arg2,
                                                         java.lang.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 java.lang.String getMessage​(java.util.ResourceBundle messages,
                                                         java.lang.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 java.lang.String getMessage​(java.util.ResourceBundle messages,
                                                         java.lang.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 java.lang.String getPackageName​(java.lang.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 java.lang.ClassLoader getSystemClassLoaderPrivileged()
        Get the system class loader. This must be done in a doPrivileged block because of security.