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 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
      • clone

        java.lang.Object clone()
        Clone the CopyPolicy.
      • setDescriptor

        void setDescriptor​(ClassDescriptor descriptor)
        Set the descriptor.
      • buildsNewInstance

        boolean buildsNewInstance()
        Return if this copy policy creates a new instance, vs a clone.