Class DefaultResolver

  • All Implemented Interfaces:
    Resolver

    public class DefaultResolver
    extends java.lang.Object
    implements Resolver
    Default Property Name Expression Resolver Implementation.

    This class assists in resolving property names in the following five formats, with the layout of an identifying String in parentheses:

    • Simple (name) - The specified name identifies an individual property of a particular JavaBean. The name of the actual getter or setter method to be used is determined using standard JavaBeans instrospection, so that (unless overridden by a BeanInfo class, a property named "xyz" will have a getter method named getXyz() or (for boolean properties only) isXyz(), and a setter method named setXyz().
    • Nested (name1.name2.name3) The first name element is used to select a property getter, as for simple references above. The object returned for this property is then consulted, using the same approach, for a property getter for a property named name2, and so on. The property value that is ultimately retrieved or modified is the one identified by the last name element.
    • Indexed (name[index]) - The underlying property value is assumed to be an array, or this JavaBean is assumed to have indexed property getter and setter methods. The appropriate (zero-relative) entry in the array is selected. List objects are now also supported for read/write. You simply need to define a getter that returns the List
    • Mapped (name(key)) - The JavaBean is assumed to have an property getter and setter methods with an additional attribute of type java.lang.String.
    • Combined (name1.name2[index].name3(key)) - Combining mapped, nested, and indexed references is also supported.
    Since:
    1.8.0
    Version:
    $Id$
    • Constructor Summary

      Constructors 
      Constructor Description
      DefaultResolver()
      Default Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int getIndex​(java.lang.String expression)
      Return the index value from the property expression or -1.
      java.lang.String getKey​(java.lang.String expression)
      Return the map key from the property expression or null.
      java.lang.String getProperty​(java.lang.String expression)
      Return the property name from the property expression.
      boolean hasNested​(java.lang.String expression)
      Indicates whether or not the expression contains nested property expressions or not.
      boolean isIndexed​(java.lang.String expression)
      Indicate whether the expression is for an indexed property or not.
      boolean isMapped​(java.lang.String expression)
      Indicate whether the expression is for a mapped property or not.
      java.lang.String next​(java.lang.String expression)
      Extract the next property expression from the current expression.
      java.lang.String remove​(java.lang.String expression)
      Remove the last property expresson from the current expression.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DefaultResolver

        public DefaultResolver()
        Default Constructor.
    • Method Detail

      • getIndex

        public int getIndex​(java.lang.String expression)
        Return the index value from the property expression or -1.
        Specified by:
        getIndex in interface Resolver
        Parameters:
        expression - The property expression
        Returns:
        The index value or -1 if the property is not indexed
        Throws:
        java.lang.IllegalArgumentException - If the indexed property is illegally formed or has an invalid (non-numeric) value.
      • getKey

        public java.lang.String getKey​(java.lang.String expression)
        Return the map key from the property expression or null.
        Specified by:
        getKey in interface Resolver
        Parameters:
        expression - The property expression
        Returns:
        The index value
        Throws:
        java.lang.IllegalArgumentException - If the mapped property is illegally formed.
      • getProperty

        public java.lang.String getProperty​(java.lang.String expression)
        Return the property name from the property expression.
        Specified by:
        getProperty in interface Resolver
        Parameters:
        expression - The property expression
        Returns:
        The property name
      • hasNested

        public boolean hasNested​(java.lang.String expression)
        Indicates whether or not the expression contains nested property expressions or not.
        Specified by:
        hasNested in interface Resolver
        Parameters:
        expression - The property expression
        Returns:
        The next property expression
      • isIndexed

        public boolean isIndexed​(java.lang.String expression)
        Indicate whether the expression is for an indexed property or not.
        Specified by:
        isIndexed in interface Resolver
        Parameters:
        expression - The property expression
        Returns:
        true if the expresion is indexed, otherwise false
      • isMapped

        public boolean isMapped​(java.lang.String expression)
        Indicate whether the expression is for a mapped property or not.
        Specified by:
        isMapped in interface Resolver
        Parameters:
        expression - The property expression
        Returns:
        true if the expresion is mapped, otherwise false
      • next

        public java.lang.String next​(java.lang.String expression)
        Extract the next property expression from the current expression.
        Specified by:
        next in interface Resolver
        Parameters:
        expression - The property expression
        Returns:
        The next property expression
      • remove

        public java.lang.String remove​(java.lang.String expression)
        Remove the last property expresson from the current expression.
        Specified by:
        remove in interface Resolver
        Parameters:
        expression - The property expression
        Returns:
        The new expression value, with first property expression removed - null if there are no more expressions