com.opensymphony.xwork2
Class TextProviderSupport

java.lang.Object
  extended by com.opensymphony.xwork2.TextProviderSupport
All Implemented Interfaces:
ResourceBundleTextProvider, TextProvider

public class TextProviderSupport
extends Object
implements ResourceBundleTextProvider

Default TextProvider implementation.

Author:
Jason Carreira, Rainer Hermanns

Field Summary
private  ResourceBundle bundle
           
private  Class clazz
           
private  LocaleProvider localeProvider
           
 
Constructor Summary
TextProviderSupport()
          Default constructor
TextProviderSupport(Class clazz, LocaleProvider provider)
          Constructor.
TextProviderSupport(ResourceBundle bundle, LocaleProvider provider)
          Constructor.
 
Method Summary
private  Locale getLocale()
          Get's the locale from the localeProvider.
 String getText(String key)
          Get a text from the resource bundles associated with this action.
 String getText(String key, List args)
          Get a text from the resource bundles associated with this action.
 String getText(String key, String defaultValue)
          Get a text from the resource bundles associated with this action.
 String getText(String key, String[] args)
          Get a text from the resource bundles associated with this action.
 String getText(String key, String defaultValue, List args)
          Get a text from the resource bundles associated with this action.
 String getText(String key, String defaultValue, List args, ValueStack stack)
          Gets a message based on a key using the supplied args, as defined in MessageFormat, or, if the message is not found, a supplied default value is returned.
 String getText(String key, String defaultValue, String arg)
          Get a text from the resource bundles associated with this action.
 String getText(String key, String defaultValue, String[] args)
          Get a text from the resource bundles associated with this action.
 String getText(String key, String defaultValue, String[] args, ValueStack stack)
          Gets a message based on a key using the supplied args, as defined in MessageFormat, or, if the message is not found, a supplied default value is returned.
 ResourceBundle getTexts()
          Get the resource bundle associated with this action.
 ResourceBundle getTexts(String aBundleName)
          Get the named bundle.
 void setBundle(ResourceBundle bundle)
          Set the resource bundle to use.
 void setClazz(Class clazz)
          Set the class to use for reading the resource bundle.
 void setLocaleProvider(LocaleProvider localeProvider)
          Set the LocaleProvider to use.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

clazz

private Class clazz

localeProvider

private LocaleProvider localeProvider

bundle

private ResourceBundle bundle
Constructor Detail

TextProviderSupport

public TextProviderSupport()
Default constructor


TextProviderSupport

public TextProviderSupport(Class clazz,
                           LocaleProvider provider)
Constructor.

Parameters:
clazz - a clazz to use for reading the resource bundle.
provider - a locale provider.

TextProviderSupport

public TextProviderSupport(ResourceBundle bundle,
                           LocaleProvider provider)
Constructor.

Parameters:
bundle - the resource bundle.
provider - a locale provider.
Method Detail

setBundle

public void setBundle(ResourceBundle bundle)
Description copied from interface: ResourceBundleTextProvider
Set the resource bundle to use.

Specified by:
setBundle in interface ResourceBundleTextProvider
Parameters:
bundle - the resource bundle.

setClazz

public void setClazz(Class clazz)
Description copied from interface: ResourceBundleTextProvider
Set the class to use for reading the resource bundle.

Specified by:
setClazz in interface ResourceBundleTextProvider
Parameters:
clazz - a clazz to use for reading the resource bundle.

setLocaleProvider

public void setLocaleProvider(LocaleProvider localeProvider)
Description copied from interface: ResourceBundleTextProvider
Set the LocaleProvider to use.

Specified by:
setLocaleProvider in interface ResourceBundleTextProvider
Parameters:
localeProvider - a locale provider.

getText

public String getText(String key)
Get a text from the resource bundles associated with this action. The resource bundles are searched, starting with the one associated with this particular action, and testing all its superclasses' bundles. It will stop once a bundle is found that contains the given text. This gives a cascading style that allow global texts to be defined for an application base class.

Specified by:
getText in interface TextProvider
Parameters:
key - name of text to be found
Returns:
value of named text

getText

public String getText(String key,
                      String defaultValue)
Get a text from the resource bundles associated with this action. The resource bundles are searched, starting with the one associated with this particular action, and testing all its superclasses' bundles. It will stop once a bundle is found that contains the given text. This gives a cascading style that allow global texts to be defined for an application base class. If no text is found for this text name, the default value is returned.

Specified by:
getText in interface TextProvider
Parameters:
key - name of text to be found
defaultValue - the default value which will be returned if no text is found
Returns:
value of named text

getText

public String getText(String key,
                      String defaultValue,
                      String arg)
Get a text from the resource bundles associated with this action. The resource bundles are searched, starting with the one associated with this particular action, and testing all its superclasses' bundles. It will stop once a bundle is found that contains the given text. This gives a cascading style that allow global texts to be defined for an application base class. If no text is found for this text name, the default value is returned.

Specified by:
getText in interface TextProvider
Parameters:
key - name of text to be found
defaultValue - the default value which will be returned if no text is found
arg - obj to be used in a MessageFormat message
Returns:
value of named text

getText

public String getText(String key,
                      List args)
Get a text from the resource bundles associated with this action. The resource bundles are searched, starting with the one associated with this particular action, and testing all its superclasses' bundles. It will stop once a bundle is found that contains the given text. This gives a cascading style that allow global texts to be defined for an application base class. If no text is found for this text name, the default value is returned.

Specified by:
getText in interface TextProvider
Parameters:
key - name of text to be found
args - a List of args to be used in a MessageFormat message
Returns:
value of named text

getText

public String getText(String key,
                      String[] args)
Get a text from the resource bundles associated with this action. The resource bundles are searched, starting with the one associated with this particular action, and testing all its superclasses' bundles. It will stop once a bundle is found that contains the given text. This gives a cascading style that allow global texts to be defined for an application base class. If no text is found for this text name, the default value is returned.

Specified by:
getText in interface TextProvider
Parameters:
key - name of text to be found
args - an array of args to be used in a MessageFormat message
Returns:
value of named text

getText

public String getText(String key,
                      String defaultValue,
                      List args)
Get a text from the resource bundles associated with this action. The resource bundles are searched, starting with the one associated with this particular action, and testing all its superclasses' bundles. It will stop once a bundle is found that contains the given text. This gives a cascading style that allow global texts to be defined for an application base class. If no text is found for this text name, the default value is returned.

Specified by:
getText in interface TextProvider
Parameters:
key - name of text to be found
defaultValue - the default value which will be returned if no text is found
args - a List of args to be used in a MessageFormat message
Returns:
value of named text

getText

public String getText(String key,
                      String defaultValue,
                      String[] args)
Get a text from the resource bundles associated with this action. The resource bundles are searched, starting with the one associated with this particular action, and testing all its superclasses' bundles. It will stop once a bundle is found that contains the given text. This gives a cascading style that allow global texts to be defined for an application base class. If no text is found for this text name, the default value is returned.

Specified by:
getText in interface TextProvider
Parameters:
key - name of text to be found
defaultValue - the default value which will be returned if no text is found
args - an array of args to be used in a MessageFormat message
Returns:
value of named text

getText

public String getText(String key,
                      String defaultValue,
                      List args,
                      ValueStack stack)
Gets a message based on a key using the supplied args, as defined in MessageFormat, or, if the message is not found, a supplied default value is returned. Instead of using the value stack in the ActionContext this version of the getText() method uses the provided value stack.

Specified by:
getText in interface TextProvider
Parameters:
key - the resource bundle key that is to be searched for
defaultValue - the default value which will be returned if no message is found
args - a list args to be used in a MessageFormat message
stack - the value stack to use for finding the text
Returns:
the message as found in the resource bundle, or defaultValue if none is found

getText

public String getText(String key,
                      String defaultValue,
                      String[] args,
                      ValueStack stack)
Gets a message based on a key using the supplied args, as defined in MessageFormat, or, if the message is not found, a supplied default value is returned. Instead of using the value stack in the ActionContext this version of the getText() method uses the provided value stack.

Specified by:
getText in interface TextProvider
Parameters:
key - the resource bundle key that is to be searched for
defaultValue - the default value which will be returned if no message is found
args - an array args to be used in a MessageFormat message
stack - the value stack to use for finding the text
Returns:
the message as found in the resource bundle, or defaultValue if none is found

getTexts

public ResourceBundle getTexts(String aBundleName)
Get the named bundle.

You can override the getLocale() methodName to change the behaviour of how to choose locale for the bundles that are returned. Typically you would use the TextProvider interface to get the users configured locale, or use your own methodName to allow the user to select the locale and store it in the session (by using the SessionAware interface).

Specified by:
getTexts in interface TextProvider
Parameters:
aBundleName - bundle name
Returns:
a resource bundle

getTexts

public ResourceBundle getTexts()
Get the resource bundle associated with this action. This will be based on the actual subclass that is used.

Specified by:
getTexts in interface TextProvider
Returns:
resouce bundle

getLocale

private Locale getLocale()
Get's the locale from the localeProvider.

Returns:
the locale from the localeProvider.


Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.