Interface CopyPolicy
-
- All Superinterfaces:
java.lang.Cloneable
,java.io.Serializable
- All Known Implementing Classes:
AbstractCopyPolicy
,CloneCopyPolicy
,InstantiationCopyPolicy
,PersistenceEntityCopyPolicy
public interface CopyPolicy extends java.lang.Cloneable, java.io.Serializable
Purpose: Allows customization of how an object is cloned. An implementer of CopyPolicy can be set on a descriptor to provide special cloning routine for how an object is cloned in a unit of work. By default the InstantiationCopyPolicy is used which creates a new instance of the class to be copied into. The CloneCopyPolicy can also be used that uses a clone method in the object to clone the object. When a clone method is used it avoid the requirement of having to copy over each of the direct attributes.
- See Also:
CloneCopyPolicy
,InstantiationCopyPolicy
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.lang.Object
buildClone(java.lang.Object object, Session session)
Return a shallow clone of the object for usage with object copying, or unit of work backup cloning.boolean
buildsNewInstance()
Return if this copy policy creates a new instance, vs a clone.java.lang.Object
buildWorkingCopyClone(java.lang.Object object, Session session)
Return a shallow clone of the object for usage with the unit of work working copy.java.lang.Object
buildWorkingCopyCloneFromRow(Record row, ObjectBuildingQuery query, java.lang.Object primaryKey, UnitOfWork uow)
Return an instance with the primary key set from the row, used for building a working copy during a unit of work transactional read.java.lang.Object
clone()
Clone the CopyPolicy.void
initialize(Session session)
Allow for any initialization or validation required.void
setDescriptor(ClassDescriptor descriptor)
Set the descriptor.
-
-
-
Method Detail
-
buildClone
java.lang.Object buildClone(java.lang.Object object, Session session) throws DescriptorException
Return a shallow clone of the object for usage with object copying, or unit of work backup cloning.- Throws:
DescriptorException
-
buildWorkingCopyClone
java.lang.Object buildWorkingCopyClone(java.lang.Object object, Session session) throws DescriptorException
Return a shallow clone of the object for usage with the unit of work working copy.- Throws:
DescriptorException
-
buildWorkingCopyCloneFromRow
java.lang.Object buildWorkingCopyCloneFromRow(Record row, ObjectBuildingQuery query, java.lang.Object primaryKey, UnitOfWork uow) throws DescriptorException
Return an instance with the primary key set from the row, used for building a working copy during a unit of work transactional read.- Throws:
DescriptorException
-
clone
java.lang.Object clone()
Clone the CopyPolicy.
-
initialize
void initialize(Session session) throws DescriptorException
Allow for any initialization or validation required.- Throws:
DescriptorException
-
setDescriptor
void setDescriptor(ClassDescriptor descriptor)
Set the descriptor.
-
buildsNewInstance
boolean buildsNewInstance()
Return if this copy policy creates a new instance, vs a clone.
-
-