|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Resolver
Property Name Expression Resolver.
Methods such as PropertyUtilsBean's setNestedProperty()
method
use a Resolver
to process a property name
expression and resolve nested, indexed and mapped
property names. The following code provides an example usage
demonstrating all the methods:
// Iterate through a nested property expression while (resolver.hasNested(name)) { // isolate a single property from a nested expresion String next = resolver.next(name); // Process... String property = resolver.getProperty(next); if (resolver.isIndexed(next)) { int index = resolver.getIndex(next); bean = getIndexedProperty(bean, property, index); } else if (resolver.isMapped(next)) { String key = resolver.getKey(next); bean = getMappedProperty(bean, property, key); } else { bean = getSimpleProperty(bean, property); } // remove the processed property from the expression name = resolver.remove(name); }In order to create an implementation, it is important to understand how BeanUtils/PropertyUtils uses the
resolver
. The following are
the main methods that use it:
PropertyUtilsBean
PropertyUtilsBean.getIndexedProperty(Object, String)
PropertyUtilsBean.getMappedProperty(Object, String)
PropertyUtilsBean.getNestedProperty(Object, String)
PropertyUtilsBean.getPropertyDescriptor(Object, String)
PropertyUtilsBean.getSimpleProperty(Object, String)
PropertyUtilsBean.setIndexedProperty(Object, String, Object)
PropertyUtilsBean.setMappedProperty(Object, String, Object)
PropertyUtilsBean.setNestedProperty(Object, String, Object)
PropertyUtilsBean.setSimpleProperty(Object, String, Object)
BeanUtilsBean
BeanUtilsBean.copyProperty(Object, String, Object)
BeanUtilsBean.setProperty(Object, String, Object)
LocaleBeanUtilsBean
PropertyUtilsBean.setResolver(Resolver)
Method Summary | |
---|---|
int |
getIndex(String expression)
Extract the index value from the property expression or -1. |
String |
getKey(String expression)
Extract the map key from the property expression or null . |
String |
getProperty(String expression)
Return the property name from the property expression. |
boolean |
hasNested(String expression)
Indicates whether or not the expression contains nested property expressions or not. |
boolean |
isIndexed(String expression)
Indicate whether the expression is for an indexed property or not. |
boolean |
isMapped(String expression)
Indicate whether the expression is for a mapped property or not. |
String |
next(String expression)
Extract the next property expression from the current expression. |
String |
remove(String expression)
Remove the last property expresson from the current expression. |
Method Detail |
---|
int getIndex(String expression)
expression
- The property expression
IllegalArgumentException
- If the indexed property is illegally
formed or has an invalid (non-numeric) valueString getKey(String expression)
null
.
expression
- The property expression
IllegalArgumentException
- If the mapped property is illegally formedString getProperty(String expression)
expression
- The property expression
boolean hasNested(String expression)
expression
- The property expression
boolean isIndexed(String expression)
expression
- The property expression
true
if the expresion is indexed,
otherwise false
boolean isMapped(String expression)
expression
- The property expression
true
if the expresion is mapped,
otherwise false
String next(String expression)
expression
- The property expression
String remove(String expression)
expression
- The property expression
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |