public interface

Resolver

org.apache.commons.beanutils.expression.Resolver
Known Indirect Subclasses

Class Overview

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:

Summary

Public Methods
abstract int getIndex(String expression)
Extract the index value from the property expression or -1.
abstract String getKey(String expression)
Extract the map key from the property expression or null.
abstract String getProperty(String expression)
Return the property name from the property expression.
abstract boolean hasNested(String expression)
Indicates whether or not the expression contains nested property expressions or not.
abstract boolean isIndexed(String expression)
Indicate whether the expression is for an indexed property or not.
abstract boolean isMapped(String expression)
Indicate whether the expression is for a mapped property or not.
abstract String next(String expression)
Extract the next property expression from the current expression.
abstract String remove(String expression)
Remove the last property expresson from the current expression.

Public Methods

public abstract int getIndex (String expression)

Extract the index value from the property expression or -1.

Parameters
expression The property expression
Returns
  • The index value or -1 if the property is not indexed
Throws
IllegalArgumentException If the indexed property is illegally formed or has an invalid (non-numeric) value

public abstract String getKey (String expression)

Extract the map key from the property expression or null.

Parameters
expression The property expression
Returns
  • The index value
Throws
IllegalArgumentException If the mapped property is illegally formed

public abstract String getProperty (String expression)

Return the property name from the property expression.

Parameters
expression The property expression
Returns
  • The property name

public abstract boolean hasNested (String expression)

Indicates whether or not the expression contains nested property expressions or not.

Parameters
expression The property expression
Returns
  • The next property expression

public abstract boolean isIndexed (String expression)

Indicate whether the expression is for an indexed property or not.

Parameters
expression The property expression
Returns
  • true if the expresion is indexed, otherwise false

public abstract boolean isMapped (String expression)

Indicate whether the expression is for a mapped property or not.

Parameters
expression The property expression
Returns
  • true if the expresion is mapped, otherwise false

public abstract String next (String expression)

Extract the next property expression from the current expression.

Parameters
expression The property expression
Returns
  • The next property expression

public abstract String remove (String expression)

Remove the last property expresson from the current expression.

Parameters
expression The property expression
Returns
  • The new expression value, with first property expression removed - null if there are no more expressions