org.springframework.beans
Class PropertyAccessorUtils

java.lang.Object
  extended by org.springframework.beans.PropertyAccessorUtils

public abstract class PropertyAccessorUtils
extends java.lang.Object

Utility methods for classes that perform bean property access according to the PropertyAccessor interface.

Since:
1.2.6
Author:
Juergen Hoeller

Constructor Summary
PropertyAccessorUtils()
           
 
Method Summary
static java.lang.String canonicalPropertyName(java.lang.String propertyName)
          Determine the canonical name for the given property path.
static java.lang.String[] canonicalPropertyNames(java.lang.String[] propertyNames)
          Determine the canonical names for the given property paths.
static int getFirstNestedPropertySeparatorIndex(java.lang.String propertyPath)
          Determine the first nested property separator in the given property path, ignoring dots in keys (like "map[my.key]").
static int getLastNestedPropertySeparatorIndex(java.lang.String propertyPath)
          Determine the first nested property separator in the given property path, ignoring dots in keys (like "map[my.key]").
private static int getNestedPropertySeparatorIndex(java.lang.String propertyPath, boolean last)
          Determine the first (or last) nested property separator in the given property path, ignoring dots in keys (like "map[my.key]").
static java.lang.String getPropertyName(java.lang.String propertyPath)
          Return the actual property name for the given property path.
static boolean isNestedOrIndexedProperty(java.lang.String propertyPath)
          Check whether the given property path indicates an indexed or nested property.
static boolean matchesProperty(java.lang.String registeredPath, java.lang.String propertyPath)
          Determine whether the given registered path matches the given property path, either indicating the property itself or an indexed element of the property.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PropertyAccessorUtils

public PropertyAccessorUtils()
Method Detail

getPropertyName

public static java.lang.String getPropertyName(java.lang.String propertyPath)
Return the actual property name for the given property path.

Parameters:
propertyPath - the property path to determine the property name for (can include property keys, for example for specifying a map entry)
Returns:
the actual property name, without any key elements

isNestedOrIndexedProperty

public static boolean isNestedOrIndexedProperty(java.lang.String propertyPath)
Check whether the given property path indicates an indexed or nested property.

Parameters:
propertyPath - the property path to check
Returns:
whether the path indicates an indexed or nested property

getFirstNestedPropertySeparatorIndex

public static int getFirstNestedPropertySeparatorIndex(java.lang.String propertyPath)
Determine the first nested property separator in the given property path, ignoring dots in keys (like "map[my.key]").

Parameters:
propertyPath - the property path to check
Returns:
the index of the nested property separator, or -1 if none

getLastNestedPropertySeparatorIndex

public static int getLastNestedPropertySeparatorIndex(java.lang.String propertyPath)
Determine the first nested property separator in the given property path, ignoring dots in keys (like "map[my.key]").

Parameters:
propertyPath - the property path to check
Returns:
the index of the nested property separator, or -1 if none

getNestedPropertySeparatorIndex

private static int getNestedPropertySeparatorIndex(java.lang.String propertyPath,
                                                   boolean last)
Determine the first (or last) nested property separator in the given property path, ignoring dots in keys (like "map[my.key]").

Parameters:
propertyPath - the property path to check
last - whether to return the last separator rather than the first
Returns:
the index of the nested property separator, or -1 if none

matchesProperty

public static boolean matchesProperty(java.lang.String registeredPath,
                                      java.lang.String propertyPath)
Determine whether the given registered path matches the given property path, either indicating the property itself or an indexed element of the property.

Parameters:
propertyPath - the property path (typically without index)
registeredPath - the registered path (potentially with index)
Returns:
whether the paths match

canonicalPropertyName

public static java.lang.String canonicalPropertyName(java.lang.String propertyName)
Determine the canonical name for the given property path. Removes surrounding quotes from map keys:
map['key'] -> map[key]
map["key"] -> map[key]

Parameters:
propertyName - the bean property path
Returns:
the canonical representation of the property path

canonicalPropertyNames

public static java.lang.String[] canonicalPropertyNames(java.lang.String[] propertyNames)
Determine the canonical names for the given property paths.

Parameters:
propertyNames - the bean property paths (as array)
Returns:
the canonical representation of the property paths (as array of the same size)
See Also:
canonicalPropertyName(String)