Package org.apache.commons.beanutils2.locale

# Class LocaleBeanUtilsBean

java.lang.Object
org.apache.commons.beanutils2.BeanUtilsBean
org.apache.commons.beanutils2.locale.LocaleBeanUtilsBean

public class LocaleBeanUtilsBean extends BeanUtilsBean

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

Since:
  1.7

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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)`
  Gets 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)`
  Gets 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)`
  Gets 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)`
  Gets 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)`
  Gets 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)`
  Gets 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)`
  Gets 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)`
  Gets 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)`
  Gets 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)`
  Gets 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)`
  Gets 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)`
  Gets 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)`
  Gets 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)`
  Gets 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)`
  Sets 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)`
  Sets 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.beanutils2.BeanUtilsBean

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

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

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

- ## Constructor Details

  - ### LocaleBeanUtilsBean

    public LocaleBeanUtilsBean()
    Constructs instance with standard conversion bean

  - ### LocaleBeanUtilsBean

    public LocaleBeanUtilsBean(LocaleConvertUtilsBean localeConvertUtils)
    Constructs instance that uses given locale conversion
    Parameters:
      `localeConvertUtils` - use this `localeConvertUtils` to perform conversions

  - ### LocaleBeanUtilsBean

    public LocaleBeanUtilsBean(LocaleConvertUtilsBean localeConvertUtils, ConvertUtilsBean convertUtilsBean, PropertyUtilsBean propertyUtilsBean)
    Constructs 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

- ## Method Details

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

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

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

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

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

  - ### getDefaultLocale

    public Locale getDefaultLocale()
    Gets the default Locale
    Returns:
      the default locale

  - ### getIndexedProperty

    public String getIndexedProperty(Object bean, String name) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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 property cannot be found

  - ### getIndexedProperty

    public String getIndexedProperty(Object bean, String name, int index) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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 property cannot be found

  - ### getIndexedProperty

    public String getIndexedProperty(Object bean, String name, int index, String pattern) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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 property cannot be found

  - ### getIndexedProperty

    public String getIndexedProperty(Object bean, String name, String pattern) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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 property cannot be found

  - ### getLocaleConvertUtils

    public LocaleConvertUtilsBean getLocaleConvertUtils()
    Gets the bean instance used for conversions
    Returns:
      the locale converter bean instance

  - ### getMappedProperty

    public String getMappedProperty(Object bean, String name) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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

  - ### getMappedProperty

    public String getMappedProperty(Object bean, String name, String key) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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

  - ### getMappedProperty

    public String getMappedProperty(Object bean, String name, String key, String pattern) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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

  - ### getMappedPropertyLocale

    public String getMappedPropertyLocale(Object bean, String name, String pattern) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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

  - ### getNestedProperty

    public String getNestedProperty(Object bean, String name) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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

  - ### getNestedProperty

    public String getNestedProperty(Object bean, String name, String pattern) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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

  - ### getProperty

    public String getProperty(Object bean, String name) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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

  - ### getProperty

    public String getProperty(Object bean, String name, String pattern) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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

  - ### getSimpleProperty

    public String getSimpleProperty(Object bean, String name) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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

  - ### getSimpleProperty

    public String getSimpleProperty(Object bean, String name, String pattern) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
    Gets 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

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

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

  - ### setDefaultLocale

    public void setDefaultLocale(Locale locale)
    Sets the default Locale.
    Parameters:
      `locale` - the default locale

  - ### setProperty

    public void setProperty(Object bean, String name, Object value) throws IllegalAccessException, InvocationTargetException
    Sets 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
    Sets 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