Class CloneCopyPolicy
java.lang.Object
org.eclipse.persistence.descriptors.copying.AbstractCopyPolicy
org.eclipse.persistence.descriptors.copying.CloneCopyPolicy
- All Implemented Interfaces:
Serializable
,Cloneable
,CopyPolicy
Purpose: Allows a clone of an object to be created with a method that returns the cloned object. It is possible to define methods for two types of clones 1. methodName can be set to define the method EclipseLink uses to clone objects for it's own internal use. The objects created by this method will not be visible to the user, and instead used as a basis for comparison when a DeferredChangeDetectionPolicy used. This method will also be in place of the workingCopyMethod if it is not provided 2. workingCopyMethod this method is used to create the clone that is returned to the user when an Object is registered in a UnitOfWork
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionprotected Method
protected String
Allow for clone method to be specified.protected Method
protected String
Fields inherited from class org.eclipse.persistence.descriptors.copying.AbstractCopyPolicy
descriptor
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionbuildClone
(Object domainObject, Session session) Clone through calling the clone method.boolean
Return false as a shallow clone is returned, not a new instance.buildWorkingCopyClone
(Object domainObject, Session session) Clone through the workingCopyClone method, or if not specified the clone method.buildWorkingCopyCloneFromRow
(Record row, ObjectBuildingQuery query, Object primaryKey, UnitOfWork uow) Create a new instance, unless a workingCopyClone method is specified, then build a new instance and clone it.protected Method
Return the clone method.Return the clone method name.protected Method
Return the workingCopyClone method.Return the workingCopyClone method name.void
initialize
(Session session) Validate and build the methods.protected void
Set the clone method.void
setMethodName
(String methodName) Set the clone method name.protected void
setWorkingCopyMethod
(Method method) Set the workingCopyClone method.void
setWorkingCopyMethodName
(String methodName) Set the workingCopyClone method name.toString()
Methods inherited from class org.eclipse.persistence.descriptors.copying.AbstractCopyPolicy
clone, getDescriptor, setDescriptor
-
Field Details
-
methodName
Allow for clone method to be specified. -
workingCopyMethodName
-
method
-
workingCopyMethod
-
-
Constructor Details
-
CloneCopyPolicy
public CloneCopyPolicy()
-
-
Method Details
-
buildClone
Clone through calling the clone method.- Specified by:
buildClone
in interfaceCopyPolicy
- Specified by:
buildClone
in classAbstractCopyPolicy
- Throws:
DescriptorException
-
buildWorkingCopyClone
public Object buildWorkingCopyClone(Object domainObject, Session session) throws DescriptorException Clone through the workingCopyClone method, or if not specified the clone method.- Specified by:
buildWorkingCopyClone
in interfaceCopyPolicy
- Overrides:
buildWorkingCopyClone
in classAbstractCopyPolicy
- Throws:
DescriptorException
-
buildWorkingCopyCloneFromRow
public Object buildWorkingCopyCloneFromRow(Record row, ObjectBuildingQuery query, Object primaryKey, UnitOfWork uow) throws DescriptorException Create a new instance, unless a workingCopyClone method is specified, then build a new instance and clone it.- Specified by:
buildWorkingCopyCloneFromRow
in interfaceCopyPolicy
- Overrides:
buildWorkingCopyCloneFromRow
in classAbstractCopyPolicy
- Throws:
DescriptorException
-
getMethod
Return the clone method. -
getMethodName
Return the clone method name. -
getWorkingCopyMethod
Return the workingCopyClone method. This is used to clone within a unit of work. -
getWorkingCopyMethodName
Return the workingCopyClone method name. This is used to clone within a unit of work. -
initialize
Validate and build the methods.- Specified by:
initialize
in interfaceCopyPolicy
- Overrides:
initialize
in classAbstractCopyPolicy
- Throws:
DescriptorException
-
setMethod
Set the clone method. -
setMethodName
Set the clone method name. -
setWorkingCopyMethod
Set the workingCopyClone method. This is used to clone within a unit of work. -
setWorkingCopyMethodName
Set the workingCopyClone method name. This is used to clone within a unit of work. -
buildsNewInstance
public boolean buildsNewInstance()Return false as a shallow clone is returned, not a new instance. -
toString
-