com.opensymphony.xwork2

## Class TextProviderSupport

- java.lang.Object
- - 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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ResourceBundle` | `bundle`
    `protected Class` | `clazz`
    `protected LocaleProvider` | `localeProvider`
    `protected LocalizedTextProvider` | `localizedTextProvider`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TextProviderSupport(Class clazz, LocaleProvider provider, LocalizedTextProvider localizedTextProvider)` Constructor.
    `TextProviderSupport(ResourceBundle bundle, LocaleProvider provider, LocalizedTextProvider localizedTextProvider)` Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `boolean` | `hasKey(String key)` Checks if a key is available in the resource bundles associated with this action.
    `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.
    `void` | `setLocaleProviderFactory(LocaleProviderFactory localeProviderFactory)`
    `void` | `setLocalizedTextProvider(LocalizedTextProvider localizedTextProvider)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### clazz

          protected Class clazz

    - #### localeProvider

          protected LocaleProvider localeProvider

    - #### bundle

          protected ResourceBundle bundle

    - #### localizedTextProvider

          protected LocalizedTextProvider localizedTextProvider

  - ### Constructor Detail

    - #### TextProviderSupport

          public TextProviderSupport(Class clazz,
                                     LocaleProvider provider,
                                     LocalizedTextProvider localizedTextProvider)

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

    - #### TextProviderSupport

          public TextProviderSupport(ResourceBundle bundle,
                                     LocaleProvider provider,
                                     LocalizedTextProvider localizedTextProvider)

      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.

    - #### setLocaleProviderFactory

          public void setLocaleProviderFactory(LocaleProviderFactory localeProviderFactory)

    - #### setLocalizedTextProvider

          public void setLocalizedTextProvider(LocalizedTextProvider localizedTextProvider)

    - #### hasKey

          public boolean hasKey(String key)

      Checks if a key is available in 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:
        `hasKey` in interface `TextProvider`
      Parameters:
        `key` - message key to check for
      Returns:
        boolean true if key exists, false otherwise.

    - #### 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 or the provided key if no value is found

    - #### 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 or the provided defaultValue if no value is found

    - #### 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 or the provided defaultValue if no value is found

    - #### 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 or the provided key if no value is found

    - #### 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 or the provided key if no value is found

    - #### 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 or the provided defaultValue if no value is found

    - #### 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 or the provided defaultValue if no value is found

    - #### 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

Copyright © 2000–2026 Apache Software Foundation. All rights reserved.