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

    Modifier and Type
    Method
    Description
    default boolean
    equals(Object value1, Object value2)
    Allows to use special logic to compare values for equality as in rare cases it is not sufficient to use the default equals() method.
    Returns property name.
    void
    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.
    Returns a property value, inflating unresolved object if need.
    Returns a property value of an object without disturbing the object fault status.
    boolean
    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 Details

    • 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
    • equals

      default boolean equals(Object value1, Object value2)
      Allows to use special logic to compare values for equality as in rare cases it is not sufficient to use the default equals() method. Default implementation uses Util.nullSafeEquals(Object, Object) method.
      Parameters:
      value1 - to compare
      value2 - to compare
      Returns:
      true if given values are equal
      Since:
      4.2