org.apache.derby.iapi.services.i18n
Class MessageService

java.lang.Object
  extended byorg.apache.derby.iapi.services.i18n.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.

Author:
ames

Field Summary
private static java.util.Locale EN
           
private static BundleFinder finder
           
 
Constructor Summary
private MessageService()
           
 
Method Summary
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 getCompleteMessage(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 void getLocalizedMessage(int sqlcode, short errmcLen, java.lang.String sqlerrmc, java.lang.String sqlerrp, int errd0, int errd1, int errd2, int errd3, int errd4, int errd5, java.lang.String warn, java.lang.String sqlState, java.lang.String file, java.lang.String localeStr, java.lang.String[] msg, int[] rc)
          Method used by Cloudscape Network Server to get localized message (original call from jcc.
static java.lang.String getLocalizedMessage(java.util.Locale locale, java.lang.String messageId, java.lang.Object[] args)
          Method used by Cloudscape Network Server to get localized message
static java.lang.String getProperty(java.lang.String messageId, java.lang.String propertyName)
           
static java.lang.String getTextMessage(java.lang.String messageID)
           
static java.lang.String getTextMessage(java.lang.String messageID, java.lang.Object a1)
           
static java.lang.String getTextMessage(java.lang.String messageID, java.lang.Object a1, java.lang.Object a2)
           
static java.lang.String getTextMessage(java.lang.String messageID, java.lang.Object a1, java.lang.Object a2, java.lang.Object a3)
           
static java.lang.String getTextMessage(java.lang.String messageID, java.lang.Object a1, java.lang.Object a2, java.lang.Object a3, java.lang.Object a4)
           
static int hashString50(java.lang.String key)
          Hash function to split messages into 50 files based upon the message identifier or SQLState.
static java.lang.Object 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

finder

private static BundleFinder finder
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 java.lang.Object setFinder(BundleFinder theFinder)

getTextMessage

public static java.lang.String getTextMessage(java.lang.String messageID)

getTextMessage

public static java.lang.String getTextMessage(java.lang.String messageID,
                                              java.lang.Object a1)

getTextMessage

public static java.lang.String getTextMessage(java.lang.String messageID,
                                              java.lang.Object a1,
                                              java.lang.Object a2)

getTextMessage

public static java.lang.String getTextMessage(java.lang.String messageID,
                                              java.lang.Object a1,
                                              java.lang.Object a2,
                                              java.lang.Object a3)

getTextMessage

public static java.lang.String getTextMessage(java.lang.String messageID,
                                              java.lang.Object a1,
                                              java.lang.Object a2,
                                              java.lang.Object a3,
                                              java.lang.Object a4)

getCompleteMessage

public static java.lang.String getCompleteMessage(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.


getLocalizedMessage

public static void getLocalizedMessage(int sqlcode,
                                       short errmcLen,
                                       java.lang.String sqlerrmc,
                                       java.lang.String sqlerrp,
                                       int errd0,
                                       int errd1,
                                       int errd2,
                                       int errd3,
                                       int errd4,
                                       int errd5,
                                       java.lang.String warn,
                                       java.lang.String sqlState,
                                       java.lang.String file,
                                       java.lang.String localeStr,
                                       java.lang.String[] msg,
                                       int[] rc)
Method used by Cloudscape Network Server to get localized message (original call from jcc.

Parameters:
sqlcode - sqlcode, not used.
errmcLen - sqlerrmc length
sqlerrmc - sql error message tokens, variable part of error message (ie., arguments) plus messageId, separated by separator.
sqlerrp - not used
warn - not used
sqlState - 5-char sql state
file - not used
localeStr - client locale in string
msg - OUTPUT parameter, localized error message
rc - OUTPUT parameter, return code -- 0 for success

getLocalizedMessage

public static java.lang.String getLocalizedMessage(java.util.Locale locale,
                                                   java.lang.String messageId,
                                                   java.lang.Object[] args)
Method used by Cloudscape Network Server to get localized message

Parameters:
locale - locale
messageId - message id
args - message arguments

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.


Built on Tue 2006-10-10 19:23:47+0200, from revision exported

Apache Derby V10.1 Engine Documentation - Copyright © 1997,2005 The Apache Software Foundation or its licensors, as applicable.