public abstract class AbstractCopyPolicy extends Object implements CopyPolicy
Purpose: Allows customization of how an object is cloned. This class defines common behavoir that allows a subclass to be used and set on a descriptor to provide a special cloning routine for how an object is cloned in a unit of work.
Modifier and Type | Field and Description |
---|---|
protected ClassDescriptor |
descriptor |
Constructor and Description |
---|
AbstractCopyPolicy() |
Modifier and Type | Method and Description |
---|---|
abstract Object |
buildClone(Object domainObject,
Session session)
Return a shallow clone of the object for usage with object copying, or unit of work backup cloning.
|
abstract boolean |
buildsNewInstance()
Return if a new instance is created or a clone.
|
Object |
buildWorkingCopyClone(Object domainObject,
Session session)
By default use the buildClone.
|
Object |
buildWorkingCopyCloneFromRow(Record row,
ObjectBuildingQuery query)
By default create a new instance.
|
Object |
buildWorkingCopyCloneFromRow(Record row,
ObjectLevelReadQuery query)
Create a new instance, unless a workingCopyClone method is specified, then build a new instance and clone it.
|
Object |
clone()
INTERNAL:
Clones the CopyPolicy
|
protected ClassDescriptor |
getDescriptor()
Return the descriptor.
|
void |
initialize(Session session)
Do nothing by default.
|
void |
setDescriptor(ClassDescriptor descriptor)
Set the descriptor.
|
protected ClassDescriptor descriptor
public abstract Object buildClone(Object domainObject, Session session) throws DescriptorException
CopyPolicy
buildClone
in interface CopyPolicy
DescriptorException
public Object buildWorkingCopyClone(Object domainObject, Session session) throws DescriptorException
buildWorkingCopyClone
in interface CopyPolicy
DescriptorException
public Object buildWorkingCopyCloneFromRow(Record row, ObjectLevelReadQuery query) throws DescriptorException
buildWorkingCopyCloneFromRow
in interface CopyPolicy
DescriptorException
public Object buildWorkingCopyCloneFromRow(Record row, ObjectBuildingQuery query) throws DescriptorException
buildWorkingCopyCloneFromRow
in interface CopyPolicy
DescriptorException
public Object clone()
clone
in interface CopyPolicy
clone
in class Object
protected ClassDescriptor getDescriptor()
public void initialize(Session session) throws DescriptorException
initialize
in interface CopyPolicy
DescriptorException
public void setDescriptor(ClassDescriptor descriptor)
setDescriptor
in interface CopyPolicy
public abstract boolean buildsNewInstance()
buildsNewInstance
in interface CopyPolicy
Copyright © 2022. All rights reserved.