org.springframework.data.mapping

## Interface PersistentPropertyPathAccessor<T>

All Superinterfaces:
  PersistentPropertyAccessor<T>

All Known Implementing Classes:
  ConvertingPropertyAccessor

    public interface PersistentPropertyPathAccessor<T>
    extends PersistentPropertyAccessor<T>

Extension of `PersistentPropertyAccessor` that is also able to obtain and set values for `PersistentPropertyPath`s.

Since:
  2.3
Author:
  Oliver Drotbohm

### Method Summary

All Methods Instance Methods Abstract Methods Default Methods
`default Object` `getProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path)` Return the value pointed to by the given `PersistentPropertyPath`.
`Object` `getProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path, AccessOptions.GetOptions context)` Return the value pointed to by the given `PersistentPropertyPath`.
`void` `setProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path, Object value)` Sets the given value for the `PersistentProperty` pointed to by the given `PersistentPropertyPath`.
`void` `setProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path, Object value, AccessOptions.SetOptions options)` Sets the given value for the `PersistentProperty` pointed to by the given `PersistentPropertyPath` considering the given `AccessOptions`.

### Methods inherited from interface org.springframework.data.mapping.PersistentPropertyAccessor

`getBean, getProperty, getProperty, setProperty`

### Method Detail

#### getProperty

    @Nullable
    default Object getProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path)

Return the value pointed to by the given `PersistentPropertyPath`. If the given path is empty, the wrapped bean is returned.

Specified by:
  `getProperty` in interface `PersistentPropertyAccessor<T>`
Parameters:
  `path` - must not be null.
Returns:

#### getProperty

    @Nullable
    Object getProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path,
                                 AccessOptions.GetOptions context)

Return the value pointed to by the given `PersistentPropertyPath`. If the given path is empty, the wrapped bean is returned. On each path segment value lookup, the resulting value is post-processed by handlers registered on the given `TraversalContext` context. This can be used to unwrap container types that are encountered during the traversal.

Parameters:
  `path` - must not be null.
  `context` - must not be null.
Returns:

#### setProperty

    void setProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path,
                     @Nullable
                     Object value)

Sets the given value for the `PersistentProperty` pointed to by the given `PersistentPropertyPath`. The lookup of intermediate values must not yield null.

Specified by:
  `setProperty` in interface `PersistentPropertyAccessor<T>`
Parameters:
  `path` - must not be null or empty.
  `value` - can be null.
See Also:
  `AccessOptions#DEFAULT`

#### setProperty

    void setProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path,
                     @Nullable
                     Object value,
                     AccessOptions.SetOptions options)

Sets the given value for the `PersistentProperty` pointed to by the given `PersistentPropertyPath` considering the given `AccessOptions`.

Parameters:
  `path` - must not be null.
  `value` - must not be null.
  `options` - must not be null.