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: LocaleBeanUtilsBean.java 1747095 2016-06-07 00:27:52Z ggregory $
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
LocaleBeanUtilsBean.Descriptor
Deprecated.Property name expressions are now processed by the configuredResolver
implementation and this class is no longer used by BeanUtils.
-
Constructor Summary
Constructors Constructor Description LocaleBeanUtilsBean()
Construct instance with standard conversion beanLocaleBeanUtilsBean(LocaleConvertUtilsBean localeConvertUtils)
Construct instance that uses given locale conversionLocaleBeanUtilsBean(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 Description protected LocaleBeanUtilsBean.Descriptor
calculate(java.lang.Object bean, java.lang.String name)
Deprecated.Property name expressions are now processed by the configuredResolver
implementation and this method is no longer used by BeanUtils.protected java.lang.Object
convert(java.lang.Class<?> type, int index, java.lang.Object value)
Convert the specified value to the required type.protected java.lang.Object
convert(java.lang.Class<?> type, int index, java.lang.Object value, java.lang.String pattern)
Convert the specified value to the required type using the specified conversion pattern.protected java.lang.Class<?>
definePropertyType(java.lang.Object target, java.lang.String name, java.lang.String propName)
Calculate the property type.boolean
getApplyLocalized()
Is the pattern to be applied localized (Indicate whether the pattern is localized or not)java.util.Locale
getDefaultLocale()
Gets the default Localejava.lang.String
getIndexedProperty(java.lang.Object bean, java.lang.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 correspondingLocaleConverter
.java.lang.String
getIndexedProperty(java.lang.Object bean, java.lang.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 correspondingLocaleConverter
.java.lang.String
getIndexedProperty(java.lang.Object bean, java.lang.String name, int index, java.lang.String pattern)
Return the value of the specified locale-sensetive indexed property of the specified bean, as a String using the specified conversion pattern.java.lang.String
getIndexedProperty(java.lang.Object bean, java.lang.String name, java.lang.String pattern)
Return the value of the specified locale-sensitive indexed property of the specified bean, as a String.static LocaleBeanUtilsBean
getLocaleBeanUtilsInstance()
Gets singleton instanceLocaleConvertUtilsBean
getLocaleConvertUtils()
Gets the bean instance used for conversionsjava.lang.String
getMappedProperty(java.lang.Object bean, java.lang.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 correspondingLocaleConverter
.java.lang.String
getMappedProperty(java.lang.Object bean, java.lang.String name, java.lang.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 expressionjava.lang.String
getMappedProperty(java.lang.Object bean, java.lang.String name, java.lang.String key, java.lang.String pattern)
Return the value of the specified mapped locale-sensitive property of the specified bean, as a String using the specified conversion pattern.java.lang.String
getMappedPropertyLocale(java.lang.Object bean, java.lang.String name, java.lang.String pattern)
Return the value of the specified locale-sensitive mapped property of the specified bean, as a String using the specified pattern.java.lang.String
getNestedProperty(java.lang.Object bean, java.lang.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 correspondingLocaleConverter
.java.lang.String
getNestedProperty(java.lang.Object bean, java.lang.String name, java.lang.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.java.lang.String
getProperty(java.lang.Object bean, java.lang.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 correspondingLocaleConverter
.java.lang.String
getProperty(java.lang.Object bean, java.lang.String name, java.lang.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.java.lang.String
getSimpleProperty(java.lang.Object bean, java.lang.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 correspondingLocaleConverter
.java.lang.String
getSimpleProperty(java.lang.Object bean, java.lang.String name, java.lang.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(java.lang.Object target, java.lang.String propName, java.lang.String key, int index, java.lang.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(java.util.Locale locale)
Sets the default Locale.static void
setInstance(LocaleBeanUtilsBean newInstance)
Sets the instance which provides the functionality forLocaleBeanUtils
.void
setProperty(java.lang.Object bean, java.lang.String name, java.lang.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 correspondingLocaleConverter
.void
setProperty(java.lang.Object bean, java.lang.String name, java.lang.Object value, java.lang.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
-
-
-
-
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 thislocaleConvertUtils
to perform conversionsconvertUtilsBean
- use this for standard conversionspropertyUtilsBean
- use this for property conversions
-
LocaleBeanUtilsBean
public LocaleBeanUtilsBean(LocaleConvertUtilsBean localeConvertUtils)
Construct instance that uses given locale conversion- Parameters:
localeConvertUtils
- use thislocaleConvertUtils
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 forLocaleBeanUtils
. 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 java.util.Locale getDefaultLocale()
Gets the default Locale- Returns:
- the default locale
-
setDefaultLocale
public void setDefaultLocale(java.util.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, otherwisefalse
-
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, otherwisefalse
-
getIndexedProperty
public java.lang.String getIndexedProperty(java.lang.Object bean, java.lang.String name, java.lang.String pattern) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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, orIllegalArgumentException
will be thrown.- Parameters:
bean
- Bean whose property is to be extractedname
-propertyname[index]
of the property value to be extractedpattern
- The conversion pattern- Returns:
- The indexed property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this propety cannot be found
-
getIndexedProperty
public java.lang.String getIndexedProperty(java.lang.Object bean, java.lang.String name) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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 correspondingLocaleConverter
. The zero-relative index of the required value must be included (in square brackets) as a suffix to the property name, orIllegalArgumentException
will be thrown.- Overrides:
getIndexedProperty
in classBeanUtilsBean
- Parameters:
bean
- Bean whose property is to be extractedname
-propertyname[index]
of the property value to be extracted- Returns:
- The indexed property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this propety cannot be found
-
getIndexedProperty
public java.lang.String getIndexedProperty(java.lang.Object bean, java.lang.String name, int index, java.lang.String pattern) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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 extractedname
- Simple property name of the property value to be extractedindex
- Index of the property value to be extractedpattern
- The conversion pattern- Returns:
- The indexed property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this propety cannot be found
-
getIndexedProperty
public java.lang.String getIndexedProperty(java.lang.Object bean, java.lang.String name, int index) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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 correspondingLocaleConverter
. The index is specified as a method parameter and must *not* be included in the property name expression- Overrides:
getIndexedProperty
in classBeanUtilsBean
- Parameters:
bean
- Bean whose property is to be extractedname
- Simple property name of the property value to be extractedindex
- Index of the property value to be extracted- Returns:
- The indexed property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this propety cannot be found
-
getSimpleProperty
public java.lang.String getSimpleProperty(java.lang.Object bean, java.lang.String name, java.lang.String pattern) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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 extractedname
- Name of the property to be extractedpattern
- The conversion pattern- Returns:
- The property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this property cannot be found
-
getSimpleProperty
public java.lang.String getSimpleProperty(java.lang.Object bean, java.lang.String name) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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 correspondingLocaleConverter
.- Overrides:
getSimpleProperty
in classBeanUtilsBean
- Parameters:
bean
- Bean whose property is to be extractedname
- Name of the property to be extracted- Returns:
- The property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this property cannot be found
-
getMappedProperty
public java.lang.String getMappedProperty(java.lang.Object bean, java.lang.String name, java.lang.String key, java.lang.String pattern) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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 extractedname
- Simple property name of the property value to be extractedkey
- Lookup key of the property value to be extractedpattern
- The conversion pattern- Returns:
- The mapped property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this property cannot be found
-
getMappedProperty
public java.lang.String getMappedProperty(java.lang.Object bean, java.lang.String name, java.lang.String key) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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 classBeanUtilsBean
- Parameters:
bean
- Bean whose property is to be extractedname
- Simple property name of the property value to be extractedkey
- Lookup key of the property value to be extracted- Returns:
- The mapped property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this property cannot be found
-
getMappedPropertyLocale
public java.lang.String getMappedPropertyLocale(java.lang.Object bean, java.lang.String name, java.lang.String pattern) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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, orIllegalArgumentException
will be thrown.- Parameters:
bean
- Bean whose property is to be extractedname
-propertyname(index)
of the property value to be extractedpattern
- The conversion pattern- Returns:
- The mapped property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this property cannot be found
-
getMappedProperty
public java.lang.String getMappedProperty(java.lang.Object bean, java.lang.String name) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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 correspondingLocaleConverter
. The String-valued key of the required value must be included (in parentheses) as a suffix to the property name, orIllegalArgumentException
will be thrown.- Overrides:
getMappedProperty
in classBeanUtilsBean
- Parameters:
bean
- Bean whose property is to be extractedname
-propertyname(index)
of the property value to be extracted- Returns:
- The mapped property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this property cannot be found
-
getNestedProperty
public java.lang.String getNestedProperty(java.lang.Object bean, java.lang.String name, java.lang.String pattern) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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 extractedname
- Possibly nested name of the property to be extractedpattern
- The conversion pattern- Returns:
- The nested property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.IllegalArgumentException
- if a nested reference to a property returns nulljava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this property cannot be found
-
getNestedProperty
public java.lang.String getNestedProperty(java.lang.Object bean, java.lang.String name) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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 correspondingLocaleConverter
.- Overrides:
getNestedProperty
in classBeanUtilsBean
- Parameters:
bean
- Bean whose property is to be extractedname
- Possibly nested name of the property to be extracted- Returns:
- The nested property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.IllegalArgumentException
- if a nested reference to a property returns nulljava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this property cannot be found
-
getProperty
public java.lang.String getProperty(java.lang.Object bean, java.lang.String name, java.lang.String pattern) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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 extractedname
- Possibly indexed and/or nested name of the property to be extractedpattern
- The conversion pattern- Returns:
- The nested property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this property cannot be found
-
getProperty
public java.lang.String getProperty(java.lang.Object bean, java.lang.String name) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.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 correspondingLocaleConverter
.- Overrides:
getProperty
in classBeanUtilsBean
- Parameters:
bean
- Bean whose property is to be extractedname
- Possibly indexed and/or nested name of the property to be extracted- Returns:
- The property's value, converted to a String
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exceptionjava.lang.NoSuchMethodException
- if an accessor method for this property cannot be found
-
setProperty
public void setProperty(java.lang.Object bean, java.lang.String name, java.lang.Object value) throws java.lang.IllegalAccessException, java.lang.reflect.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 correspondingLocaleConverter
.- Overrides:
setProperty
in classBeanUtilsBean
- Parameters:
bean
- Bean on which setting is to be performedname
- Property name (can be nested/indexed/mapped/combo)value
- Value to be set- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exception
-
setProperty
public void setProperty(java.lang.Object bean, java.lang.String name, java.lang.Object value, java.lang.String pattern) throws java.lang.IllegalAccessException, java.lang.reflect.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 performedname
- Property name (can be nested/indexed/mapped/combo)value
- Value to be setpattern
- The conversion pattern- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exception
-
definePropertyType
protected java.lang.Class<?> definePropertyType(java.lang.Object target, java.lang.String name, java.lang.String propName) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
Calculate the property type.- Parameters:
target
- The beanname
- The property namepropName
- The Simple name of target property- Returns:
- The property's type
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exception
-
convert
protected java.lang.Object convert(java.lang.Class<?> type, int index, java.lang.Object value, java.lang.String pattern)
Convert the specified value to the required type using the specified conversion pattern.- Parameters:
type
- The Java type of target propertyindex
- The indexed subscript value (if any)value
- The value to be convertedpattern
- The conversion pattern- Returns:
- The converted value
-
convert
protected java.lang.Object convert(java.lang.Class<?> type, int index, java.lang.Object value)
Convert the specified value to the required type.- Parameters:
type
- The Java type of target propertyindex
- The indexed subscript value (if any)value
- The value to be converted- Returns:
- The converted value
-
invokeSetter
protected void invokeSetter(java.lang.Object target, java.lang.String propName, java.lang.String key, int index, java.lang.Object newValue) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
Invoke the setter method.- Parameters:
target
- The beanpropName
- The Simple name of target propertykey
- The Mapped key value (if any)index
- The indexed subscript value (if any)newValue
- The value to be set- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exception
-
calculate
@Deprecated protected LocaleBeanUtilsBean.Descriptor calculate(java.lang.Object bean, java.lang.String name) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
Deprecated.Property name expressions are now processed by the configuredResolver
implementation and this method is no longer used by BeanUtils.Resolve any nested expression to get the actual target property.- Parameters:
bean
- The beanname
- The property name- Returns:
- The property's descriptor
- Throws:
java.lang.IllegalAccessException
- if the caller does not have access to the property accessor methodjava.lang.reflect.InvocationTargetException
- if the property accessor method throws an exception
-
-