Class MessageService

java.lang.Object
org.apache.derby.iapi.services.i18n.MessageService

public final class MessageService extends 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 Details

  • Constructor Details

    • MessageService

      private MessageService()
  • Method Details

    • getBundleForLocale

      public static ResourceBundle getBundleForLocale(Locale locale, String msgId)
    • setFinder

      public static void setFinder(BundleFinder theFinder)
    • getTextMessage

      public static String getTextMessage(String messageId, 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 String getProperty(String messageId, String propertyName)
    • formatMessage

      public static String formatMessage(ResourceBundle bundle, String messageId, Object[] arguments, boolean lastChance)
    • getBundle

      private static ResourceBundle getBundle(String messageId)
    • getBundleWithEnDefault

      public static ResourceBundle getBundleWithEnDefault(String resource, 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(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.