public class GlobalLocalizedTextProvider extends Object
| Modifier and Type | Field and Description | 
|---|---|
protected ConcurrentMap<String,ResourceBundle> | 
bundlesMap  | 
protected boolean | 
devMode  | 
protected boolean | 
reloadBundles  | 
static String | 
STRUTS_MESSAGES_BUNDLE  | 
static String | 
XWORK_MESSAGES_BUNDLE  | 
| Constructor and Description | 
|---|
GlobalLocalizedTextProvider()  | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
addDefaultResourceBundle(String resourceBundleName)
Add's the bundle to the internal list of default bundles. 
 | 
protected MessageFormat | 
buildMessageFormat(String pattern,
                  Locale locale)  | 
void | 
clearBundle(String bundleName)
Clear a specific bundle from the  
bundlesMap
 
 Warning: This method may be ineffective due to the way the bundlesMap
   is used in combination with locale. | 
protected void | 
clearBundle(String bundleName,
           Locale locale)
Clear a specific bundle + locale combination from the  
bundlesMap. | 
protected void | 
clearMissingBundlesCache()
Clears the  
missingBundles contents. | 
String | 
findDefaultText(String aTextName,
               Locale locale)
Returns a localized message for the specified key, aTextName. 
 | 
String | 
findDefaultText(String aTextName,
               Locale locale,
               Object[] params)
Returns a localized message for the specified key, aTextName, substituting variables from the
 array of params into the message. 
 | 
protected String | 
findMessage(Class clazz,
           String key,
           String indexedKey,
           Locale locale,
           Object[] args,
           Set<String> checked,
           ValueStack valueStack)
Traverse up class hierarchy looking for message. 
 | 
ResourceBundle | 
findResourceBundle(String aBundleName,
                  Locale locale)
Finds the given resource bundle by it's name. 
 | 
String | 
findText(Class aClass,
        String aTextName,
        Locale locale)
Calls  
findText(Class aClass, String aTextName, Locale locale, String defaultMessage, Object[] args)
 with aTextName as the default message. | 
String | 
findText(Class aClass,
        String aTextName,
        Locale locale,
        String defaultMessage,
        Object[] args)
 Finds a localized text message for the given key, aTextName. 
 | 
String | 
findText(Class aClass,
        String aTextName,
        Locale locale,
        String defaultMessage,
        Object[] args,
        ValueStack valueStack)
 Finds a localized text message for the given key, aTextName. 
 | 
String | 
findText(ResourceBundle bundle,
        String aTextName,
        Locale locale)
 Finds a localized text message for the given key, aTextName, in the specified resource bundle
 with aTextName as the default message. 
 | 
String | 
findText(ResourceBundle bundle,
        String aTextName,
        Locale locale,
        String defaultMessage,
        Object[] args)
 Finds a localized text message for the given key, aTextName, in the specified resource
 bundle. 
 | 
String | 
findText(ResourceBundle bundle,
        String aTextName,
        Locale locale,
        String defaultMessage,
        Object[] args,
        ValueStack valueStack)
 Finds a localized text message for the given key, aTextName, in the specified resource
 bundle. 
 | 
protected String | 
formatWithNullDetection(MessageFormat mf,
                       Object[] args)  | 
protected List<String> | 
getCurrentBundleNames()  | 
protected ClassLoader | 
getCurrentThreadContextClassLoader()  | 
protected com.opensymphony.xwork2.util.AbstractLocalizedTextProvider.GetDefaultMessageReturnArg | 
getDefaultMessage(String key,
                 Locale locale,
                 ValueStack valueStack,
                 Object[] args,
                 String defaultMessage)  | 
protected String | 
getMessage(String bundleName,
          Locale locale,
          String key,
          ValueStack valueStack,
          Object[] args)  | 
protected void | 
reloadBundles()  | 
protected void | 
reloadBundles(Map<String,Object> context)  | 
void | 
reset()
Deprecated. 
 
used only in tests 
 | 
void | 
setCustomI18NResources(String bundles)  | 
void | 
setDelegatedClassLoader(ClassLoader classLoader)  | 
void | 
setDevMode(String devMode)  | 
void | 
setReloadBundles(String reloadBundles)  | 
protected boolean | 
unableToFindTextForKey(com.opensymphony.xwork2.util.AbstractLocalizedTextProvider.GetDefaultMessageReturnArg result)
Determines if we found the text in the bundles. 
 | 
public static final String XWORK_MESSAGES_BUNDLE
public static final String STRUTS_MESSAGES_BUNDLE
protected final ConcurrentMap<String,ResourceBundle> bundlesMap
protected boolean devMode
protected boolean reloadBundles
public String findText(Class aClass, String aTextName, Locale locale)
findText(Class aClass, String aTextName, Locale locale, String defaultMessage, Object[] args)
 with aTextName as the default message.aClass - class nameaTextName - text namelocale - the localefindText(Class aClass, String aTextName, Locale locale, String defaultMessage, Object[] args)public String findText(Class aClass, String aTextName, Locale locale, String defaultMessage, Object[] args)
Finds a localized text message for the given key, aTextName. Both the key and the message itself is evaluated as required. The following algorithm is used to find the requested message:
ModelDriven Action, then look for message in
 the model's class hierarchy (repeat sub-steps listed above).When looking for the message, if the key indexes a collection (e.g. user.phone[0]) and a message for that specific key cannot be found, the general form will also be looked up (i.e. user.phone[*]).
 If a message is found, it will also be interpolated.  Anything within ${...}
 will be treated as an OGNL expression and evaluated as such.
 
aClass - the class whose name to use as the start point for the searchaTextName - the key to find the text message forlocale - the locale the message should be fordefaultMessage - the message to be returned if no text message can be found in any
                       resource bundleargs - arguments
                       resource bundlepublic String findText(Class aClass, String aTextName, Locale locale, String defaultMessage, Object[] args, ValueStack valueStack)
Finds a localized text message for the given key, aTextName. Both the key and the message itself is evaluated as required. The following algorithm is used to find the requested message:
ModelDriven Action, then look for message in
 the model's class hierarchy (repeat sub-steps listed above).When looking for the message, if the key indexes a collection (e.g. user.phone[0]) and a message for that specific key cannot be found, the general form will also be looked up (i.e. user.phone[*]).
 If a message is found, it will also be interpolated.  Anything within ${...}
 will be treated as an OGNL expression and evaluated as such.
 
If a message is not found a WARN log will be logged.
aClass - the class whose name to use as the start point for the searchaTextName - the key to find the text message forlocale - the locale the message should be fordefaultMessage - the message to be returned if no text message can be found in any
                       resource bundleargs - argumentsvalueStack - the value stack to use to evaluate expressions instead of the
                       one in the ActionContext ThreadLocalpublic String findText(ResourceBundle bundle, String aTextName, Locale locale)
Finds a localized text message for the given key, aTextName, in the specified resource bundle with aTextName as the default message.
 If a message is found, it will also be interpolated.  Anything within ${...}
 will be treated as an OGNL expression and evaluated as such.
 
bundle - a resource bundle nameaTextName - text namelocale - the localefindText(ResourceBundle, String, Locale, String, Object[])public String findText(ResourceBundle bundle, String aTextName, Locale locale, String defaultMessage, Object[] args)
Finds a localized text message for the given key, aTextName, in the specified resource bundle.
 If a message is found, it will also be interpolated.  Anything within ${...}
 will be treated as an OGNL expression and evaluated as such.
 
If a message is not found a WARN log will be logged.
bundle - the bundleaTextName - the keylocale - the localedefaultMessage - the default message to use if no message was found in the bundleargs - arguments for the message formatter.public void addDefaultResourceBundle(String resourceBundleName)
addDefaultResourceBundle in interface LocalizedTextProviderresourceBundleName - the name of the bundle to add.protected ClassLoader getCurrentThreadContextClassLoader()
public void setCustomI18NResources(String bundles)
public String findDefaultText(String aTextName, Locale locale)
findDefaultText in interface LocalizedTextProvideraTextName - the message keylocale - the locale the message should be forpublic String findDefaultText(String aTextName, Locale locale, Object[] params)
findDefaultText in interface LocalizedTextProvideraTextName - the message keylocale - the locale the message should be forparams - an array of objects to be substituted into the message textpublic String findText(ResourceBundle bundle, String aTextName, Locale locale, String defaultMessage, Object[] args, ValueStack valueStack)
Finds a localized text message for the given key, aTextName, in the specified resource bundle.
 If a message is found, it will also be interpolated.  Anything within ${...}
 will be treated as an OGNL expression and evaluated as such.
 
If a message is not found a WARN log will be logged.
findText in interface LocalizedTextProviderbundle - the bundleaTextName - the keylocale - the localedefaultMessage - the default message to use if no message was found in the bundleargs - arguments for the message formatter.valueStack - the OGNL value stack.public void setDelegatedClassLoader(ClassLoader classLoader)
classLoader - a ClassLoader to look up the bundle from if none can be found on the current thread's classloaderpublic void clearBundle(String bundleName)
bundlesMap
 
 Warning: This method may be ineffective due to the way the bundlesMap
   is used in combination with locale.  Descendants should use the method
   clearBundle(java.lang.String, java.util.Locale) instead.bundleName - The bundle to remove from the bundle mapprotected void clearBundle(String bundleName, Locale locale)
bundlesMap.
   Intended for descendants to use clear a bundle + locale combination.bundleName - The bundle (combined with locale) to remove from the bundle maplocale - Provides the locale to combine with the bundle to get the keyprotected void clearMissingBundlesCache()
missingBundles contents.  This allows descendants to
   clear the "missing bundles cache" when desired (or needed).
 
 Note: This method may be used when the bundlesMap state has changed
   in such a way that bundles that were previously "missing" may now be available
   (e.g. after calling addDefaultResourceBundle(java.lang.String) when the
   AbstractLocalizedTextProvider has already been used for failed bundle
   lookups of a given key, or some transitory state made a bundle lookup fail.protected void reloadBundles()
protected MessageFormat buildMessageFormat(String pattern, Locale locale)
protected String formatWithNullDetection(MessageFormat mf, Object[] args)
public void setReloadBundles(String reloadBundles)
public void setDevMode(String devMode)
public ResourceBundle findResourceBundle(String aBundleName, Locale locale)
 Will use Thread.currentThread().getContextClassLoader() as the classloader.
 
findResourceBundle in interface LocalizedTextProvideraBundleName - the name of the bundle (usually it's FQN classname).locale - the locale.@Deprecated public void reset()
protected boolean unableToFindTextForKey(com.opensymphony.xwork2.util.AbstractLocalizedTextProvider.GetDefaultMessageReturnArg result)
result - the result so farprotected com.opensymphony.xwork2.util.AbstractLocalizedTextProvider.GetDefaultMessageReturnArg getDefaultMessage(String key, Locale locale, ValueStack valueStack, Object[] args, String defaultMessage)
protected String getMessage(String bundleName, Locale locale, String key, ValueStack valueStack, Object[] args)
Copyright © 2000–2020 Apache Software Foundation. All rights reserved.