Class CloneCopyPolicy
- java.lang.Object
-
- org.eclipse.persistence.descriptors.copying.AbstractCopyPolicy
-
- org.eclipse.persistence.descriptors.copying.CloneCopyPolicy
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,CopyPolicy
public class CloneCopyPolicy extends AbstractCopyPolicy
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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.reflect.Method
method
protected java.lang.String
methodName
Allow for clone method to be specified.protected java.lang.reflect.Method
workingCopyMethod
protected java.lang.String
workingCopyMethodName
-
Fields inherited from class org.eclipse.persistence.descriptors.copying.AbstractCopyPolicy
descriptor
-
-
Constructor Summary
Constructors Constructor Description CloneCopyPolicy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
buildClone(java.lang.Object domainObject, Session session)
Clone through calling the clone method.boolean
buildsNewInstance()
Return false as a shallow clone is returned, not a new instance.java.lang.Object
buildWorkingCopyClone(java.lang.Object domainObject, Session session)
Clone through the workingCopyClone method, or if not specified the clone method.java.lang.Object
buildWorkingCopyCloneFromRow(Record row, ObjectBuildingQuery query, java.lang.Object primaryKey, UnitOfWork uow)
Create a new instance, unless a workingCopyClone method is specified, then build a new instance and clone it.protected java.lang.reflect.Method
getMethod()
Return the clone method.java.lang.String
getMethodName()
Return the clone method name.protected java.lang.reflect.Method
getWorkingCopyMethod()
Return the workingCopyClone method.java.lang.String
getWorkingCopyMethodName()
Return the workingCopyClone method name.void
initialize(Session session)
Validate and build the methods.protected void
setMethod(java.lang.reflect.Method method)
Set the clone method.void
setMethodName(java.lang.String methodName)
Set the clone method name.protected void
setWorkingCopyMethod(java.lang.reflect.Method method)
Set the workingCopyClone method.void
setWorkingCopyMethodName(java.lang.String methodName)
Set the workingCopyClone method name.java.lang.String
toString()
-
Methods inherited from class org.eclipse.persistence.descriptors.copying.AbstractCopyPolicy
clone, getDescriptor, setDescriptor
-
-
-
-
Field Detail
-
methodName
protected java.lang.String methodName
Allow for clone method to be specified.
-
workingCopyMethodName
protected java.lang.String workingCopyMethodName
-
method
protected transient java.lang.reflect.Method method
-
workingCopyMethod
protected transient java.lang.reflect.Method workingCopyMethod
-
-
Method Detail
-
buildClone
public java.lang.Object buildClone(java.lang.Object domainObject, Session session) throws DescriptorException
Clone through calling the clone method.- Specified by:
buildClone
in interfaceCopyPolicy
- Specified by:
buildClone
in classAbstractCopyPolicy
- Throws:
DescriptorException
-
buildWorkingCopyClone
public java.lang.Object buildWorkingCopyClone(java.lang.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 java.lang.Object buildWorkingCopyCloneFromRow(Record row, ObjectBuildingQuery query, java.lang.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
protected java.lang.reflect.Method getMethod()
Return the clone method.
-
getMethodName
public java.lang.String getMethodName()
Return the clone method name.
-
getWorkingCopyMethod
protected java.lang.reflect.Method getWorkingCopyMethod()
Return the workingCopyClone method. This is used to clone within a unit of work.
-
getWorkingCopyMethodName
public java.lang.String getWorkingCopyMethodName()
Return the workingCopyClone method name. This is used to clone within a unit of work.
-
initialize
public void initialize(Session session) throws DescriptorException
Validate and build the methods.- Specified by:
initialize
in interfaceCopyPolicy
- Overrides:
initialize
in classAbstractCopyPolicy
- Throws:
DescriptorException
-
setMethod
protected void setMethod(java.lang.reflect.Method method)
Set the clone method.
-
setMethodName
public void setMethodName(java.lang.String methodName)
Set the clone method name.
-
setWorkingCopyMethod
protected void setWorkingCopyMethod(java.lang.reflect.Method method)
Set the workingCopyClone method. This is used to clone within a unit of work.
-
setWorkingCopyMethodName
public void setWorkingCopyMethodName(java.lang.String methodName)
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
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-