Package org.apache.cayenne.reflect
Class BaseToManyProperty
java.lang.Object
org.apache.cayenne.reflect.BaseProperty
org.apache.cayenne.reflect.BaseArcProperty
org.apache.cayenne.reflect.BaseToManyProperty
- All Implemented Interfaces:
ArcProperty,PropertyDescriptor,ToManyProperty
public abstract class BaseToManyProperty extends BaseArcProperty implements ToManyProperty
A generic superclass of CollectionProperty implementations.
- Since:
- 1.2
-
Field Summary
Fields inherited from class org.apache.cayenne.reflect.BaseArcProperty
complimentaryReverseArcName, relationship, reverseDbPath, targetDescriptorFields inherited from class org.apache.cayenne.reflect.BaseProperty
accessor, owner -
Constructor Summary
Constructors Constructor Description BaseToManyProperty(ClassDescriptor owner, ClassDescriptor targetDescriptor, Accessor accessor, String reverseName) -
Method Summary
Modifier and Type Method Description voidaddTarget(Object source, Object target, boolean setReverse)voidaddTargetDirectly(Object source, Object target)Adds value to collection, without triggering changing events This method is mostly for internal useprotected abstract ValueHoldercreateCollectionValueHolder(Object object)Creates a Collection for an object.protected ValueHolderensureCollectionValueHolderSet(Object object)Checks that an object's List field described by this property is set, injecting a List if needed.voidinjectValueHolder(Object object)Injects a List in the object if it hasn't been done yet.ObjectreadProperty(Object object)Returns a property value, inflating unresolved object if need.voidremoveTarget(Object source, Object target, boolean setReverse)voidremoveTargetDirectly(Object source, Object target)Removes value from collection, without triggering changing events This method is mostly for internal usebooleanvisit(PropertyVisitor visitor)A visitor accept method.voidwritePropertyDirectly(Object object, Object oldValue, Object newValue)Wraps list in a value holder that performs lazy faulting.Methods inherited from class org.apache.cayenne.reflect.BaseArcProperty
getComplimentaryReverseArc, getComplimentaryReverseDbRelationshipPath, getRelationship, getTargetDescriptor, isFault, setReverseMethods inherited from class org.apache.cayenne.reflect.BaseProperty
getName, readPropertyDirectly, toString, writePropertyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.cayenne.reflect.ArcProperty
getComplimentaryReverseArc, getComplimentaryReverseDbRelationshipPath, getRelationship, getTargetDescriptor, invalidate, isFaultMethods inherited from interface org.apache.cayenne.reflect.PropertyDescriptor
getName, readPropertyDirectly, writeProperty
-
Constructor Details
-
BaseToManyProperty
public BaseToManyProperty(ClassDescriptor owner, ClassDescriptor targetDescriptor, Accessor accessor, String reverseName)
-
-
Method Details
-
readProperty
Description copied from interface:PropertyDescriptorReturns a property value, inflating unresolved object if need.- Specified by:
readPropertyin interfacePropertyDescriptor- Overrides:
readPropertyin classBaseProperty- Throws:
PropertyException
-
writePropertyDirectly
public void writePropertyDirectly(Object object, Object oldValue, Object newValue) throws PropertyExceptionWraps list in a value holder that performs lazy faulting.- Specified by:
writePropertyDirectlyin interfacePropertyDescriptor- Overrides:
writePropertyDirectlyin classBaseProperty- Throws:
PropertyException
-
addTarget
- Specified by:
addTargetin interfaceToManyProperty
-
addTargetDirectly
Description copied from interface:ToManyPropertyAdds value to collection, without triggering changing events This method is mostly for internal use- Specified by:
addTargetDirectlyin interfaceToManyProperty- Throws:
PropertyException
-
removeTargetDirectly
Description copied from interface:ToManyPropertyRemoves value from collection, without triggering changing events This method is mostly for internal use- Specified by:
removeTargetDirectlyin interfaceToManyProperty- Throws:
PropertyException
-
removeTarget
- Specified by:
removeTargetin interfaceToManyProperty
-
visit
Description copied from interface:PropertyDescriptorA visitor accept method.- Specified by:
visitin interfacePropertyDescriptor- Specified by:
visitin classBaseArcProperty- 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
Injects a List in the object if it hasn't been done yet.- Specified by:
injectValueHolderin interfacePropertyDescriptor- Overrides:
injectValueHolderin classBaseProperty- Throws:
PropertyException
-
ensureCollectionValueHolderSet
Checks that an object's List field described by this property is set, injecting a List if needed.- Throws:
PropertyException
-
createCollectionValueHolder
Creates a Collection for an object.- Throws:
PropertyException
-