org.apache.commons.beanutils.locale

Class LocaleBeanUtilsBean


public class LocaleBeanUtilsBean
extends BeanUtilsBean

Utility methods for populating JavaBeans properties via reflection in a locale-dependent manner.
Authors:
Craig R. McClanahan
Ralph Schaer
Chris Audley
Rey Francois
Gregor Rayman
Yauheny Mikulski
Since:
1.7

Nested Class Summary

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.

Field Summary

private static ContextClassLoaderLocal
LOCALE_BEANS_BY_CLASSLOADER
Contains LocaleBeanUtilsBean instances indexed by context classloader.
private LocaleConvertUtilsBean
localeConvertUtils
Convertor used by this class
private Log
log
All logging goes through this logger

Fields inherited from class org.apache.commons.beanutils.BeanUtilsBean

BEANS_BY_CLASSLOADER, INIT_CAUSE_METHOD, convertUtilsBean, log, propertyUtilsBean

Constructor Summary

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

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, String pattern)
Return the value of the specified locale-sensitive indexed property of the specified bean, as a String.
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.
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, getIndexedProperty, getIndexedProperty, getInitCauseMethod, getInstance, getMappedProperty, getMappedProperty, getNestedProperty, getProperty, getPropertyUtils, getSimpleProperty, initCause, populate, setInstance, setProperty

Field Details

LOCALE_BEANS_BY_CLASSLOADER

private static final ContextClassLoaderLocal LOCALE_BEANS_BY_CLASSLOADER
Contains LocaleBeanUtilsBean instances indexed by context classloader.

localeConvertUtils

private LocaleConvertUtilsBean localeConvertUtils
Convertor used by this class

log

private Log log
All logging goes through this logger

Constructor Details

LocaleBeanUtilsBean

public LocaleBeanUtilsBean()
Construct instance with standard conversion bean

LocaleBeanUtilsBean

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

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

Method Details

calculate

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

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

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

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

getIndexedProperty

public String getIndexedProperty(Object bean,
                                 String name,
                                 int index)
            throws IllegalAccessException,
                   InvocationTargetException,
                   NoSuchMethodException
Overrides:
getIndexedProperty in interface 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

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

getLocaleBeanUtilsInstance

public static LocaleBeanUtilsBean getLocaleBeanUtilsInstance()
Gets singleton instance
Returns:
the singleton instance

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

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

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

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

getNestedProperty

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

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

getProperty

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

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

getSimpleProperty

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

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

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

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

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

setProperty

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

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

Copyright (c) 2001-2007 - Apache Software Foundation