Package 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
Modifier and TypeMethodDescriptiondefault boolean
Allows to use special logic to compare values for equality as in rare cases it is not sufficient to use the default equals() method.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.readProperty
(Object object) Returns a property value, inflating unresolved object if need.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 Details
-
getName
String getName()Returns property name. -
readPropertyDirectly
Returns a property value of an object without disturbing the object fault status.- Throws:
PropertyException
-
readProperty
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
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
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
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
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 usesUtil.nullSafeEquals(Object, Object)
method.- Parameters:
value1
- to comparevalue2
- to compare- Returns:
- true if given values are equal
- Since:
- 4.2
-