Class MessageService


  • public final class MessageService
    extends java.lang.Object
    Message Service implementation provides a mechanism for locating messages and substituting arguments for message parameters. It also provides a service for locating property values.

    It uses the resource bundle mechanism for locating messages based on keys; the preferred form of resource bundle is a property file mapping keys to messages.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.util.Locale EN  
      private static BundleFinder finder  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private MessageService()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String formatMessage​(java.util.ResourceBundle bundle, java.lang.String messageId, java.lang.Object[] arguments, boolean lastChance)  
      private static java.util.ResourceBundle getBundle​(java.lang.String messageId)  
      static java.util.ResourceBundle getBundleForLocale​(java.util.Locale locale, java.lang.String msgId)  
      static java.util.ResourceBundle getBundleWithEnDefault​(java.lang.String resource, java.util.Locale locale)
      Method to use instead of ResourceBundle.getBundle().
      static java.lang.String getProperty​(java.lang.String messageId, java.lang.String propertyName)  
      static java.lang.String getTextMessage​(java.lang.String messageId, java.lang.Object... arguments)
      Transform the message from messageID to the actual error, warning, or info message using the correct locale.
      static int hashString50​(java.lang.String key)
      Hash function to split messages into 50 files based upon the message identifier or SQLState.
      static void setFinder​(BundleFinder theFinder)  
      • Methods inherited from class java.lang.Object

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

      • EN

        private static final java.util.Locale EN
    • Constructor Detail

      • MessageService

        private MessageService()
    • Method Detail

      • getBundleForLocale

        public static java.util.ResourceBundle getBundleForLocale​(java.util.Locale locale,
                                                                  java.lang.String msgId)
      • setFinder

        public static void setFinder​(BundleFinder theFinder)
      • getTextMessage

        public static java.lang.String getTextMessage​(java.lang.String messageId,
                                                      java.lang.Object... arguments)
        Transform the message from messageID to the actual error, warning, or info message using the correct locale.

        The arguments to the messages are passed via an object array, the objects in the array WILL be changed by this class. The caller should NOT get the object back from this array.

      • getProperty

        public static java.lang.String getProperty​(java.lang.String messageId,
                                                   java.lang.String propertyName)
      • formatMessage

        public static java.lang.String formatMessage​(java.util.ResourceBundle bundle,
                                                     java.lang.String messageId,
                                                     java.lang.Object[] arguments,
                                                     boolean lastChance)
      • getBundle

        private static java.util.ResourceBundle getBundle​(java.lang.String messageId)
      • getBundleWithEnDefault

        public static java.util.ResourceBundle getBundleWithEnDefault​(java.lang.String resource,
                                                                      java.util.Locale locale)
        Method to use instead of ResourceBundle.getBundle(). This method acts like ResourceBundle.getBundle() but if the resource is not available in the requested locale, default locale or base class the one for en_US is returned.
      • hashString50

        public static int hashString50​(java.lang.String key)
        Hash function to split messages into 50 files based upon the message identifier or SQLState. We don't use String.hashCode() as it varies between releases and doesn't provide an even distribution across the 50 files.