Package org.apache.cayenne.reflect

## Class PropertyUtils

- java.lang.Object
- - org.apache.cayenne.reflect.PropertyUtils

-     public class PropertyUtils
      extends Object

  Utility methods to quickly access object properties. This class supports simple and nested properties and also conversion of property values to match property type. No converter customization is provided yet, so only basic converters for Strings, Numbers and primitives are available.
  Since:
    1.2

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Accessor` | `accessor​(String nestedPropertyName)` | Compiles an accessor that can be used for fast access for the nested property of the objects of a given class.
    `static Object` | `getProperty​(Object object, String nestedPropertyName)` | Returns object property using JavaBean-compatible introspection with one addition - a property can be a dot-separated property name path.
    `static void` | `installAccessorFactory​(AccessorFactory accessorFactory)` | This method installs custom accessor factory to be used by property utils.
    `static void` | `setProperty​(Object object, String nestedPropertyName, Object value)` | Sets object property using JavaBean-compatible introspection with one addition - a property can be a dot-separated property name path.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### accessor

          public static Accessor accessor​(String nestedPropertyName)

      Compiles an accessor that can be used for fast access for the nested property of the objects of a given class.
      Since:
        4.0

    - #### getProperty

          public static Object getProperty​(Object object,
                                           String nestedPropertyName)
                                    throws CayenneRuntimeException

      Returns object property using JavaBean-compatible introspection with one addition - a property can be a dot-separated property name path.
      Throws:
        `CayenneRuntimeException`

    - #### setProperty

          public static void setProperty​(Object object,
                                         String nestedPropertyName,
                                         Object value)
                                  throws CayenneRuntimeException

      Sets object property using JavaBean-compatible introspection with one addition - a property can be a dot-separated property name path. Before setting a value attempts to convert it to a type compatible with the object property. Automatic conversion is supported between strings and basic types like numbers or primitives.
      Throws:
        `CayenneRuntimeException`

    - #### installAccessorFactory

          public static void installAccessorFactory​(AccessorFactory accessorFactory)

      This method installs custom accessor factory to be used by property utils.

      A factory that produces `BeanAccessor` is used by default.

      Parameters:
        `accessorFactory` - new factory to use
      Since:
        4.1