EclipseLink1.0 - 20080707 API Reference

org.eclipse.persistence.descriptors.copying
Class CloneCopyPolicy

java.lang.Object
  extended by org.eclipse.persistence.descriptors.copying.AbstractCopyPolicy
      extended by 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
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
CloneCopyPolicy()
           
 
Method Summary
 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.util.Vector 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
buildWorkingCopyCloneFromPrimaryKeyObject, buildWorkingCopyCloneFromRow, clone, getDescriptor, setDescriptor
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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
Constructor Detail

CloneCopyPolicy

public CloneCopyPolicy()
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 interface CopyPolicy
Specified by:
buildClone in class AbstractCopyPolicy
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 interface CopyPolicy
Overrides:
buildWorkingCopyClone in class AbstractCopyPolicy
Throws:
DescriptorException

buildWorkingCopyCloneFromRow

public java.lang.Object buildWorkingCopyCloneFromRow(Record row,
                                                     ObjectBuildingQuery query,
                                                     java.util.Vector 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 interface CopyPolicy
Overrides:
buildWorkingCopyCloneFromRow in class AbstractCopyPolicy
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 interface CopyPolicy
Overrides:
initialize in class AbstractCopyPolicy
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.

Specified by:
buildsNewInstance in interface CopyPolicy
Specified by:
buildsNewInstance in class AbstractCopyPolicy

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

EclipseLink1.0 - 20080707 API Reference