org.apache.commons.beanutils.locale

## Class LocaleBeanUtilsBean

- java.lang.Object
- - org.apache.commons.beanutils.BeanUtilsBean
  - - org.apache.commons.beanutils.locale.LocaleBeanUtilsBean

-     public class LocaleBeanUtilsBean
      extends BeanUtilsBean

  Utility methods for populating JavaBeans properties via reflection in a locale-dependent manner.

  Since:
    1.7
  Version:
    $Id$

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `LocaleBeanUtilsBean.Descriptor` Deprecated. Property name expressions are now processed by the configured `Resolver` implementation and this class is no longer used by BeanUtils.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LocaleBeanUtilsBean()` Construct instance with standard conversion bean
    `LocaleBeanUtilsBean(LocaleConvertUtilsBean localeConvertUtils)` Construct instance that uses given locale conversion
    `LocaleBeanUtilsBean(LocaleConvertUtilsBean localeConvertUtils, ConvertUtilsBean convertUtilsBean, PropertyUtilsBean propertyUtilsBean)` Construct instance that uses given locale conversion

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected LocaleBeanUtilsBean.Descriptor` | `calculate(Object bean, String name)` Deprecated. Property name expressions are now processed by the configured `Resolver` implementation and this method is no longer used by BeanUtils.
    `protected Object` | `convert(Class<?> type, int index, Object value)` Convert the specified value to the required type.
    `protected Object` | `convert(Class<?> type, int index, Object value, String pattern)` Convert the specified value to the required type using the specified conversion pattern.
    `protected Class<?>` | `definePropertyType(Object target, String name, String propName)` Calculate the property type.
    `boolean` | `getApplyLocalized()` Is the pattern to be applied localized (Indicate whether the pattern is localized or not)
    `Locale` | `getDefaultLocale()` Gets the default Locale
    `String` | `getIndexedProperty(Object bean, String name)` Return the value of the specified locale-sensitive indexed property of the specified bean, as a String using the default conversion pattern of the corresponding `LocaleConverter`.
    `String` | `getIndexedProperty(Object bean, String name, int index)` Return the value of the specified locale-sensetive indexed property of the specified bean, as a String using the default conversion pattern of the corresponding `LocaleConverter`.
    `String` | `getIndexedProperty(Object bean, String name, int index, String pattern)` Return the value of the specified locale-sensetive indexed property of the specified bean, as a String using the specified conversion pattern.
    `String` | `getIndexedProperty(Object bean, String name, String pattern)` Return the value of the specified locale-sensitive indexed property of the specified bean, as a String.
    `static LocaleBeanUtilsBean` | `getLocaleBeanUtilsInstance()` Gets singleton instance
    `LocaleConvertUtilsBean` | `getLocaleConvertUtils()` Gets the bean instance used for conversions
    `String` | `getMappedProperty(Object bean, String name)` Return the value of the specified locale-sensitive mapped property of the specified bean, as a String using the default conversion pattern of the corresponding `LocaleConverter`.
    `String` | `getMappedProperty(Object bean, String name, String key)` Return the value of the specified mapped locale-sensitive property of the specified bean, as a String The key is specified as a method parameter and must *not* be included in the property name expression
    `String` | `getMappedProperty(Object bean, String name, String key, String pattern)` Return the value of the specified mapped locale-sensitive property of the specified bean, as a String using the specified conversion pattern.
    `String` | `getMappedPropertyLocale(Object bean, String name, String pattern)` Return the value of the specified locale-sensitive mapped property of the specified bean, as a String using the specified pattern.
    `String` | `getNestedProperty(Object bean, String name)` Return the value of the (possibly nested) locale-sensitive property of the specified name, for the specified bean, as a String using the default conversion pattern of the corresponding `LocaleConverter`.
    `String` | `getNestedProperty(Object bean, String name, String pattern)` Return the value of the (possibly nested) locale-sensitive property of the specified name, for the specified bean, as a String using the specified pattern.
    `String` | `getProperty(Object bean, String name)` Return the value of the specified locale-sensitive property of the specified bean, no matter which property reference format is used, as a String using the default conversion pattern of the corresponding `LocaleConverter`.
    `String` | `getProperty(Object bean, String name, String pattern)` Return the value of the specified locale-sensitive property of the specified bean, no matter which property reference format is used, as a String using the specified conversion pattern.
    `String` | `getSimpleProperty(Object bean, String name)` Return the value of the specified simple locale-sensitive property of the specified bean, converted to a String using the default conversion pattern of the corresponding `LocaleConverter`.
    `String` | `getSimpleProperty(Object bean, String name, String pattern)` Return the value of the specified simple locale-sensitive property of the specified bean, converted to a String using the specified conversion pattern.
    `protected void` | `invokeSetter(Object target, String propName, String key, int index, Object newValue)` Invoke the setter method.
    `void` | `setApplyLocalized(boolean newApplyLocalized)` Sets whether the pattern is applied localized (Indicate whether the pattern is localized or not)
    `void` | `setDefaultLocale(Locale locale)` Sets the default Locale.
    `static void` | `setInstance(LocaleBeanUtilsBean newInstance)` Sets the instance which provides the functionality for `LocaleBeanUtils`.
    `void` | `setProperty(Object bean, String name, Object value)` Set the specified locale-sensitive property value, performing type conversions as required to conform to the type of the destination property using the default conversion pattern of the corresponding `LocaleConverter`.
    `void` | `setProperty(Object bean, String name, Object value, String pattern)` Set the specified locale-sensitive property value, performing type conversions as required to conform to the type of the destination property using the specified conversion pattern.

    - ### Methods inherited from class org.apache.commons.beanutils.BeanUtilsBean

      `cloneBean, convert, copyProperties, copyProperty, describe, getArrayProperty, getConvertUtils, getInstance, getPropertyUtils, initCause, populate, setInstance`

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

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

- - ### Constructor Detail

    - #### LocaleBeanUtilsBean

          public LocaleBeanUtilsBean()

      Construct instance with standard conversion bean

    - #### LocaleBeanUtilsBean

          public LocaleBeanUtilsBean(LocaleConvertUtilsBean localeConvertUtils,
                                     ConvertUtilsBean convertUtilsBean,
                                     PropertyUtilsBean propertyUtilsBean)

      Construct instance that uses given locale conversion
      Parameters:
        `localeConvertUtils` - use this `localeConvertUtils` to perform conversions
        `convertUtilsBean` - use this for standard conversions
        `propertyUtilsBean` - use this for property conversions

    - #### LocaleBeanUtilsBean

          public LocaleBeanUtilsBean(LocaleConvertUtilsBean localeConvertUtils)

      Construct instance that uses given locale conversion
      Parameters:
        `localeConvertUtils` - use this `localeConvertUtils` to perform conversions

  - ### Method Detail

    - #### getLocaleBeanUtilsInstance

          public static LocaleBeanUtilsBean getLocaleBeanUtilsInstance()

      Gets singleton instance
      Returns:
        the singleton instance

    - #### setInstance

          public static void setInstance(LocaleBeanUtilsBean newInstance)

      Sets the instance which provides the functionality for `LocaleBeanUtils`. This is a pseudo-singleton - an single instance is provided per (thread) context classloader. This mechanism provides isolation for web apps deployed in the same container.
      Parameters:
        `newInstance` - a new singleton instance

    - #### getLocaleConvertUtils

          public LocaleConvertUtilsBean getLocaleConvertUtils()

      Gets the bean instance used for conversions
      Returns:
        the locale converter bean instance

    - #### getDefaultLocale

          public Locale getDefaultLocale()

      Gets the default Locale
      Returns:
        the default locale

    - #### setDefaultLocale

          public void setDefaultLocale(Locale locale)

      Sets the default Locale.
      Parameters:
        `locale` - the default locale

    - #### getApplyLocalized

          public boolean getApplyLocalized()

      Is the pattern to be applied localized (Indicate whether the pattern is localized or not)
      Returns:
        `true` if pattern is localized, otherwise `false`

    - #### setApplyLocalized

          public void setApplyLocalized(boolean newApplyLocalized)

      Sets whether the pattern is applied localized (Indicate whether the pattern is localized or not)
      Parameters:
        `newApplyLocalized` - `true` if pattern is localized, otherwise `false`

    - #### getIndexedProperty

          public String getIndexedProperty(Object bean,
                                           String name,
                                           String pattern)
                                    throws IllegalAccessException,
                                           InvocationTargetException,
                                           NoSuchMethodException

      Return the value of the specified locale-sensitive indexed property of the specified bean, as a String. The zero-relative index of the required value must be included (in square brackets) as a suffix to the property name, or `IllegalArgumentException` will be thrown.
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - `propertyname[index]` of the property value to be extracted
        `pattern` - The conversion pattern
      Returns:
        The indexed property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this propety cannot be found

    - #### getIndexedProperty

          public String getIndexedProperty(Object bean,
                                           String name)
                                    throws IllegalAccessException,
                                           InvocationTargetException,
                                           NoSuchMethodException

      Return the value of the specified locale-sensitive indexed property of the specified bean, as a String using the default conversion pattern of the corresponding `LocaleConverter`. The zero-relative index of the required value must be included (in square brackets) as a suffix to the property name, or `IllegalArgumentException` will be thrown.
      Overrides:
        `getIndexedProperty` in class `BeanUtilsBean`
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - `propertyname[index]` of the property value to be extracted
      Returns:
        The indexed property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this propety cannot be found

    - #### getIndexedProperty

          public String getIndexedProperty(Object bean,
                                           String name,
                                           int index,
                                           String pattern)
                                    throws IllegalAccessException,
                                           InvocationTargetException,
                                           NoSuchMethodException

      Return the value of the specified locale-sensetive indexed property of the specified bean, as a String using the specified conversion pattern. The index is specified as a method parameter and must *not* be included in the property name expression
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - Simple property name of the property value to be extracted
        `index` - Index of the property value to be extracted
        `pattern` - The conversion pattern
      Returns:
        The indexed property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this propety cannot be found

    - #### getIndexedProperty

          public String getIndexedProperty(Object bean,
                                           String name,
                                           int index)
                                    throws IllegalAccessException,
                                           InvocationTargetException,
                                           NoSuchMethodException

      Return the value of the specified locale-sensetive indexed property of the specified bean, as a String using the default conversion pattern of the corresponding `LocaleConverter`. The index is specified as a method parameter and must *not* be included in the property name expression
      Overrides:
        `getIndexedProperty` in class `BeanUtilsBean`
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - Simple property name of the property value to be extracted
        `index` - Index of the property value to be extracted
      Returns:
        The indexed property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this propety cannot be found

    - #### getSimpleProperty

          public String getSimpleProperty(Object bean,
                                          String name,
                                          String pattern)
                                   throws IllegalAccessException,
                                          InvocationTargetException,
                                          NoSuchMethodException

      Return the value of the specified simple locale-sensitive property of the specified bean, converted to a String using the specified conversion pattern.
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - Name of the property to be extracted
        `pattern` - The conversion pattern
      Returns:
        The property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this property cannot be found

    - #### getSimpleProperty

          public String getSimpleProperty(Object bean,
                                          String name)
                                   throws IllegalAccessException,
                                          InvocationTargetException,
                                          NoSuchMethodException

      Return the value of the specified simple locale-sensitive property of the specified bean, converted to a String using the default conversion pattern of the corresponding `LocaleConverter`.
      Overrides:
        `getSimpleProperty` in class `BeanUtilsBean`
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - Name of the property to be extracted
      Returns:
        The property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this property cannot be found

    - #### getMappedProperty

          public String getMappedProperty(Object bean,
                                          String name,
                                          String key,
                                          String pattern)
                                   throws IllegalAccessException,
                                          InvocationTargetException,
                                          NoSuchMethodException

      Return the value of the specified mapped locale-sensitive property of the specified bean, as a String using the specified conversion pattern. The key is specified as a method parameter and must *not* be included in the property name expression.
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - Simple property name of the property value to be extracted
        `key` - Lookup key of the property value to be extracted
        `pattern` - The conversion pattern
      Returns:
        The mapped property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this property cannot be found

    - #### getMappedProperty

          public String getMappedProperty(Object bean,
                                          String name,
                                          String key)
                                   throws IllegalAccessException,
                                          InvocationTargetException,
                                          NoSuchMethodException

      Return the value of the specified mapped locale-sensitive property of the specified bean, as a String The key is specified as a method parameter and must *not* be included in the property name expression
      Overrides:
        `getMappedProperty` in class `BeanUtilsBean`
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - Simple property name of the property value to be extracted
        `key` - Lookup key of the property value to be extracted
      Returns:
        The mapped property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this property cannot be found

    - #### getMappedPropertyLocale

          public String getMappedPropertyLocale(Object bean,
                                                String name,
                                                String pattern)
                                         throws IllegalAccessException,
                                                InvocationTargetException,
                                                NoSuchMethodException

      Return the value of the specified locale-sensitive mapped property of the specified bean, as a String using the specified pattern. The String-valued key of the required value must be included (in parentheses) as a suffix to the property name, or `IllegalArgumentException` will be thrown.
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - `propertyname(index)` of the property value to be extracted
        `pattern` - The conversion pattern
      Returns:
        The mapped property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this property cannot be found

    - #### getMappedProperty

          public String getMappedProperty(Object bean,
                                          String name)
                                   throws IllegalAccessException,
                                          InvocationTargetException,
                                          NoSuchMethodException

      Return the value of the specified locale-sensitive mapped property of the specified bean, as a String using the default conversion pattern of the corresponding `LocaleConverter`. The String-valued key of the required value must be included (in parentheses) as a suffix to the property name, or `IllegalArgumentException` will be thrown.
      Overrides:
        `getMappedProperty` in class `BeanUtilsBean`
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - `propertyname(index)` of the property value to be extracted
      Returns:
        The mapped property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this property cannot be found

    - #### getNestedProperty

          public String getNestedProperty(Object bean,
                                          String name,
                                          String pattern)
                                   throws IllegalAccessException,
                                          InvocationTargetException,
                                          NoSuchMethodException

      Return the value of the (possibly nested) locale-sensitive property of the specified name, for the specified bean, as a String using the specified pattern.
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - Possibly nested name of the property to be extracted
        `pattern` - The conversion pattern
      Returns:
        The nested property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `IllegalArgumentException` - if a nested reference to a property returns null
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this property cannot be found

    - #### getNestedProperty

          public String getNestedProperty(Object bean,
                                          String name)
                                   throws IllegalAccessException,
                                          InvocationTargetException,
                                          NoSuchMethodException

      Return the value of the (possibly nested) locale-sensitive property of the specified name, for the specified bean, as a String using the default conversion pattern of the corresponding `LocaleConverter`.
      Overrides:
        `getNestedProperty` in class `BeanUtilsBean`
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - Possibly nested name of the property to be extracted
      Returns:
        The nested property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `IllegalArgumentException` - if a nested reference to a property returns null
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this property cannot be found

    - #### getProperty

          public String getProperty(Object bean,
                                    String name,
                                    String pattern)
                             throws IllegalAccessException,
                                    InvocationTargetException,
                                    NoSuchMethodException

      Return the value of the specified locale-sensitive property of the specified bean, no matter which property reference format is used, as a String using the specified conversion pattern.
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - Possibly indexed and/or nested name of the property to be extracted
        `pattern` - The conversion pattern
      Returns:
        The nested property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this property cannot be found

    - #### getProperty

          public String getProperty(Object bean,
                                    String name)
                             throws IllegalAccessException,
                                    InvocationTargetException,
                                    NoSuchMethodException

      Return the value of the specified locale-sensitive property of the specified bean, no matter which property reference format is used, as a String using the default conversion pattern of the corresponding `LocaleConverter`.
      Overrides:
        `getProperty` in class `BeanUtilsBean`
      Parameters:
        `bean` - Bean whose property is to be extracted
        `name` - Possibly indexed and/or nested name of the property to be extracted
      Returns:
        The property's value, converted to a String
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception
        `NoSuchMethodException` - if an accessor method for this property cannot be found

    - #### setProperty

          public void setProperty(Object bean,
                                  String name,
                                  Object value)
                           throws IllegalAccessException,
                                  InvocationTargetException

      Set the specified locale-sensitive property value, performing type conversions as required to conform to the type of the destination property using the default conversion pattern of the corresponding `LocaleConverter`.
      Overrides:
        `setProperty` in class `BeanUtilsBean`
      Parameters:
        `bean` - Bean on which setting is to be performed
        `name` - Property name (can be nested/indexed/mapped/combo)
        `value` - Value to be set
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception

    - #### setProperty

          public void setProperty(Object bean,
                                  String name,
                                  Object value,
                                  String pattern)
                           throws IllegalAccessException,
                                  InvocationTargetException

      Set the specified locale-sensitive property value, performing type conversions as required to conform to the type of the destination property using the specified conversion pattern.
      Parameters:
        `bean` - Bean on which setting is to be performed
        `name` - Property name (can be nested/indexed/mapped/combo)
        `value` - Value to be set
        `pattern` - The conversion pattern
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception

    - #### definePropertyType

          protected Class<?> definePropertyType(Object target,
                                                String name,
                                                String propName)
                                         throws IllegalAccessException,
                                                InvocationTargetException

      Calculate the property type.
      Parameters:
        `target` - The bean
        `name` - The property name
        `propName` - The Simple name of target property
      Returns:
        The property's type
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception

    - #### convert

          protected Object convert(Class<?> type,
                                   int index,
                                   Object value,
                                   String pattern)

      Convert the specified value to the required type using the specified conversion pattern.
      Parameters:
        `type` - The Java type of target property
        `index` - The indexed subscript value (if any)
        `value` - The value to be converted
        `pattern` - The conversion pattern
      Returns:
        The converted value

    - #### convert

          protected Object convert(Class<?> type,
                                   int index,
                                   Object value)

      Convert the specified value to the required type.
      Parameters:
        `type` - The Java type of target property
        `index` - The indexed subscript value (if any)
        `value` - The value to be converted
      Returns:
        The converted value

    - #### invokeSetter

          protected void invokeSetter(Object target,
                                      String propName,
                                      String key,
                                      int index,
                                      Object newValue)
                               throws IllegalAccessException,
                                      InvocationTargetException

      Invoke the setter method.
      Parameters:
        `target` - The bean
        `propName` - The Simple name of target property
        `key` - The Mapped key value (if any)
        `index` - The indexed subscript value (if any)
        `newValue` - The value to be set
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception

    - #### calculate

          @Deprecated
          protected LocaleBeanUtilsBean.Descriptor calculate(Object bean,
                                                                         String name)
                                                                  throws IllegalAccessException,
                                                                         InvocationTargetException

      Deprecated. Property name expressions are now processed by the configured `Resolver` implementation and this method is no longer used by BeanUtils.
      Resolve any nested expression to get the actual target property.
      Parameters:
        `bean` - The bean
        `name` - The property name
      Returns:
        The property's descriptor
      Throws:
        `IllegalAccessException` - if the caller does not have access to the property accessor method
        `InvocationTargetException` - if the property accessor method throws an exception

Copyright © 2000–2019 The Apache Software Foundation. All rights reserved.