org.apache.cayenne.reflect

## Interface PropertyDescriptor

- All Known Subinterfaces:
    ArcProperty, AttributeProperty, Property, ToManyMapProperty, ToManyProperty, ToOneProperty
  All Known Implementing Classes:
    BaseArcProperty, BaseProperty, BaseToManyProperty, BaseToOneProperty, SimpleAttributeProperty

      public interface PropertyDescriptor

  Defines bean property API used by Cayenne to access object data, do faulting and graph maintenance tasks.
  Since:
    4.0

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getName()` Returns property name.
    `void` | `injectValueHolder(Object object)` If a property is implemented as a ValueHolder, this operation would create an unfaulted value holder and inject it into the object, if an object doesn't have it set yet.
    `Object` | `readProperty(Object object)` Returns a property value, inflating unresolved object if need.
    `Object` | `readPropertyDirectly(Object object)` Returns a property value of an object without disturbing the object fault status.
    `boolean` | `visit(PropertyVisitor visitor)` A visitor accept method.
    `void` | `writeProperty(Object object, Object oldValue, Object newValue)` Sets a property value, inflating unresolved object if need.
    `void` | `writePropertyDirectly(Object object, Object oldValue, Object newValue)` Sets a property value of an object without disturbing the object fault status.

- - ### Method Detail

    - #### getName

          String getName()

      Returns property name.

    - #### readPropertyDirectly

          Object readPropertyDirectly(Object object)
                               throws PropertyException

      Returns a property value of an object without disturbing the object fault status.
      Throws:
        `PropertyException`

    - #### readProperty

          Object readProperty(Object object)
                       throws PropertyException

      Returns a property value, inflating unresolved object if need.
      Throws:
        `PropertyException`

    - #### writePropertyDirectly

          void writePropertyDirectly(Object object,
                                     Object oldValue,
                                     Object newValue)
                              throws PropertyException

      Sets a property value of an object without disturbing the object fault status. Old value of the property is specified as a hint and can be ignored by the property implementor.
      Throws:
        `PropertyException`

    - #### writeProperty

          void writeProperty(Object object,
                             Object oldValue,
                             Object newValue)
                      throws PropertyException

      Sets a property value, inflating unresolved object if need. Old value of the property is specified as a hint and can be ignored by the property implementor.
      Throws:
        `PropertyException`

    - #### visit

          boolean visit(PropertyVisitor visitor)

      A visitor accept method.
      Returns:
        a status returned by the corresponding callback method of the visitor. It serves as an indication of whether peer properties processing is still needed.

    - #### injectValueHolder

          void injectValueHolder(Object object)
                          throws PropertyException

      If a property is implemented as a ValueHolder, this operation would create an unfaulted value holder and inject it into the object, if an object doesn't have it set yet.
      Throws:
        `PropertyException`

Copyright © 2001–2023 Apache Cayenne. All rights reserved.