public abstract class AbstractCloneProvider extends Object implements CloneProvider, org.springframework.context.ApplicationContextAware
CloneProvider| Modifier and Type | Field and Description |
|---|---|
protected org.springframework.context.ApplicationContext |
applicationContext |
protected int |
batchSize |
protected CloneManager |
cloneManager |
protected com.broadleafcommerce.enterprise.common.extension.enterprise.AbstractCloneProviderExtensionManager |
cloneProviderExtensionManager |
protected com.broadleafcommerce.enterprise.common.persistence.filter.FilterStateManager |
filterStateManager |
protected org.broadleafcommerce.common.util.dao.DynamicDaoHelper |
helper |
protected Map<String,Map<String,org.hibernate.type.Type>> |
typePool |
protected EnterpriseWorkflowLogger |
workflowLogger |
protected WorkflowStateManager |
workflowStateManager |
| Constructor and Description |
|---|
AbstractCloneProvider() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
archiveObject(Object start,
javax.persistence.EntityManager em)
Soft-delete the entity (presumably a production entity).
|
boolean |
archiveObject(Object start,
javax.persistence.EntityManager em,
boolean forceArchive)
Soft-delete the entity (presumably a production entity).
|
protected abstract boolean |
canHandle(Object start,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
org.broadleafcommerce.common.web.BroadleafRequestContext context) |
protected <T> T |
convertBean(T originalBean,
T targetBean,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
boolean forDelete,
boolean includeClonePolicy)
Copy properties from the original to the target
|
protected <T> T |
convertBean(T originalBean,
T targetBean,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
boolean forDelete,
boolean includeClonePolicy,
Map<Serializable,Object> instanceLibrary,
Set<WorkflowCloneLibrary> cloneLibGroup)
Copy properties from the original to the target
|
protected <T> T |
convertBean(T originalBean,
T targetBean,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
String[] ignoreFields,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
boolean forDelete,
boolean includeClonePolicy)
Copy properties from the original to the target
|
protected <T> T |
convertBean(T originalBean,
T targetBean,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
String[] ignoreFields,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
boolean forDelete,
boolean includeClonePolicy,
Map<Serializable,Object> instanceLibrary,
Set<WorkflowCloneLibrary> cloneLibGroup)
Copy properties from the original to the target
|
void |
establishCatalogFlag(Object clone)
Set the catalog flag for the current site, or 0 if not applicable
|
protected void |
establishCatalogFlag(Object clone,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager)
We may be dealing with multitenant, in which case we need to set a catalog flag based on the site to allow
an aspect of the enterprise query to work.
|
int |
getBatchSize()
When processing adorned target collections during cloning, it is useful to update the collections members in batches
in order to not run out of memory for large collection scenarios.
|
CloneManager |
getCloneManager() |
protected Field[] |
getFields(Class<?> clazz)
Get all the fields for a class and its superclasses
|
protected <T> Map<String,org.hibernate.type.Type> |
getFromCache(T originalBean,
javax.persistence.EntityManager em,
boolean includeId,
org.hibernate.type.Type originalType)
Retrieve a map of property name to property type
|
org.broadleafcommerce.common.util.dao.DynamicDaoHelper |
getHelper() |
protected String |
getIdentifier(javax.persistence.EntityManager em,
Object test) |
protected abstract <T> T |
handleClonePolicy(T start,
T clone,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
boolean forDelete,
boolean includeClonePolicy,
Map<Serializable,Object> instanceLibrary,
Set<WorkflowCloneLibrary> cloneLibGroup)
Handle cloning for collections marked with one of the
ClonePolicy
annotations. |
protected <T> T |
performConvert(T originalBean,
T targetBean,
Field[] fields,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
String[] ignoreFields,
org.hibernate.type.Type originalType,
Map<Serializable,Object> instanceLibrary,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
boolean forDelete,
boolean includeClonePolicy,
Set<WorkflowCloneLibrary> cloneLibGroup)
Copy properties from the original bean to the target bean
|
protected <T> void |
performPrepare(T originalBean,
Field[] fields,
javax.persistence.EntityManager em)
Force loading of collections (presumably lazy loaded collections)
|
protected <T> void |
prepareCollections(T originalBean,
javax.persistence.EntityManager em)
Force loading of collections (presumably lazy loaded collections)
|
CloneProviderResponse |
prepareState(Object start,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
org.broadleafcommerce.common.web.BroadleafRequestContext context)
Initialize the entity, including lazy collections.
|
boolean |
processCascadeSave(Object start,
Object target,
javax.persistence.EntityManager em)
Does nothing by default.
|
boolean |
sandBoxArchiveObject(Object start,
javax.persistence.EntityManager em)
Does nothing by default.
|
boolean |
sandBoxArchiveProductionObject(Object start,
javax.persistence.EntityManager em)
Soft-delete the production entity.
|
void |
setApplicationContext(org.springframework.context.ApplicationContext applicationContext) |
void |
setBatchSize(int batchSize) |
void |
setCloneManager(CloneManager cloneManager) |
void |
setHelper(org.broadleafcommerce.common.util.dao.DynamicDaoHelper helper) |
boolean |
setupProdAddState(Object start,
javax.persistence.EntityManager em) |
void |
setupSandBoxState(Object clone,
Object original,
String idProperty,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
javax.persistence.EntityManager em)
Set the various sandbox related fields to their appropriate values
|
void |
setupSandBoxState(Object clone,
String idProperty,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
javax.persistence.EntityManager em)
Set the various sandbox related fields to their appropriate values
|
boolean |
unArchiveObject(Object start,
javax.persistence.EntityManager em) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcloneObject, setupRemoveState, updateNestedCloneReferencesprotected int batchSize
protected CloneManager cloneManager
protected org.broadleafcommerce.common.util.dao.DynamicDaoHelper helper
protected org.springframework.context.ApplicationContext applicationContext
protected WorkflowStateManager workflowStateManager
@Autowired(required=false) protected EnterpriseWorkflowLogger workflowLogger
protected com.broadleafcommerce.enterprise.common.persistence.filter.FilterStateManager filterStateManager
protected com.broadleafcommerce.enterprise.common.extension.enterprise.AbstractCloneProviderExtensionManager cloneProviderExtensionManager
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
throws org.springframework.beans.BeansException
setApplicationContext in interface org.springframework.context.ApplicationContextAwareorg.springframework.beans.BeansExceptionpublic void setupSandBoxState(Object clone, Object original, String idProperty, org.broadleafcommerce.common.web.BroadleafRequestContext context, javax.persistence.EntityManager em)
CloneProvidersetupSandBoxState in interface CloneProviderclone - the cloned instanceoriginal - the original instanceidProperty - the primary key property on the beancontext - the broadleaf request contextem - the entity managerSandBoxDiscriminatorpublic void establishCatalogFlag(Object clone) throws IllegalAccessException, InstantiationException
CloneProviderestablishCatalogFlag in interface CloneProviderclone - the cloned instanceIllegalAccessExceptionInstantiationExceptionpublic void setupSandBoxState(Object clone, String idProperty, org.broadleafcommerce.common.web.BroadleafRequestContext context, javax.persistence.EntityManager em)
CloneProvidersetupSandBoxState in interface CloneProviderclone - the cloned instanceidProperty - the primary key property on the beancontext - the broadleaf request contextem - the entity managerSandBoxDiscriminatorpublic CloneProviderResponse prepareState(Object start, javax.persistence.EntityManager em, org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager, org.broadleafcommerce.common.web.BroadleafRequestContext context)
CloneProviderprepareState in interface CloneProviderstart - the instance to prepareem - the entity managerfieldManager - the field managercontext - the broadleaf request contextpublic int getBatchSize()
public void setBatchSize(int batchSize)
batchSize - the batchgetBatchSize()public CloneManager getCloneManager()
public void setCloneManager(CloneManager cloneManager)
public org.broadleafcommerce.common.util.dao.DynamicDaoHelper getHelper()
public void setHelper(org.broadleafcommerce.common.util.dao.DynamicDaoHelper helper)
protected abstract boolean canHandle(Object start, javax.persistence.EntityManager em, org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager, org.broadleafcommerce.common.web.BroadleafRequestContext context)
protected void establishCatalogFlag(Object clone, org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager) throws IllegalAccessException, InstantiationException
clone - the clonefieldManager - the field managerIllegalAccessExceptionInstantiationExceptionprotected abstract <T> T handleClonePolicy(T start,
T clone,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
boolean forDelete,
boolean includeClonePolicy,
Map<Serializable,Object> instanceLibrary,
Set<WorkflowCloneLibrary> cloneLibGroup)
ClonePolicy
annotations.T - the entity typestart - the original entityclone - the cloned entity containing collections to cloneem - the entity managerfieldManager - the field managercontext - the broadleaf request contextforDelete - whether or not this operation is part of a rollbackincludeClonePolicy - whether or not marked collections should be processedinstanceLibrary - map that keeps track of field references that have already been processed
(avoid repeat clones when an entity has multiple references to the same item)cloneLibGroup - keeps track of the WorkflowCloneLibrary instances addedClonePolicyprotected <T> T convertBean(T originalBean,
T targetBean,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
boolean forDelete,
boolean includeClonePolicy)
T - originalBean - targetBean - em - fieldManager - context - forDelete - includeClonePolicy - protected <T> T convertBean(T originalBean,
T targetBean,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
boolean forDelete,
boolean includeClonePolicy,
Map<Serializable,Object> instanceLibrary,
Set<WorkflowCloneLibrary> cloneLibGroup)
T - originalBean - targetBean - em - fieldManager - context - forDelete - includeClonePolicy - instanceLibrary - cloneLibGroup - protected <T> T convertBean(T originalBean,
T targetBean,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
String[] ignoreFields,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
boolean forDelete,
boolean includeClonePolicy)
T - originalBean - targetBean - em - fieldManager - ignoreFields - context - forDelete - includeClonePolicy - protected <T> T convertBean(T originalBean,
T targetBean,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
String[] ignoreFields,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
boolean forDelete,
boolean includeClonePolicy,
Map<Serializable,Object> instanceLibrary,
Set<WorkflowCloneLibrary> cloneLibGroup)
T - originalBean - targetBean - em - fieldManager - ignoreFields - context - forDelete - includeClonePolicy - instanceLibrary - cloneLibGroup - protected <T> void prepareCollections(T originalBean,
javax.persistence.EntityManager em)
T - originalBean - em - protected <T> void performPrepare(T originalBean,
Field[] fields,
javax.persistence.EntityManager em)
throws Exception
T - originalBean - fields - em - Exceptionprotected <T> T performConvert(T originalBean,
T targetBean,
Field[] fields,
javax.persistence.EntityManager em,
org.broadleafcommerce.openadmin.server.service.persistence.module.FieldManager fieldManager,
String[] ignoreFields,
org.hibernate.type.Type originalType,
Map<Serializable,Object> instanceLibrary,
org.broadleafcommerce.common.web.BroadleafRequestContext context,
boolean forDelete,
boolean includeClonePolicy,
Set<WorkflowCloneLibrary> cloneLibGroup)
throws Exception
T - originalBean - targetBean - fields - em - fieldManager - ignoreFields - originalType - instanceLibrary - context - forDelete - includeClonePolicy - cloneLibGroup - Exceptionprotected <T> Map<String,org.hibernate.type.Type> getFromCache(T originalBean, javax.persistence.EntityManager em, boolean includeId, org.hibernate.type.Type originalType)
T - originalBean - the bean to inspectem - includeId - whether or not to include the id propertyoriginalType - the Type of the bean to inspectprotected Field[] getFields(Class<?> clazz)
clazz - public boolean sandBoxArchiveObject(Object start, javax.persistence.EntityManager em)
sandBoxArchiveObject in interface CloneProviderstart - the sandboxable entity to archiveem - the entity managerCloneProvider.sandBoxArchiveObject(Object, javax.persistence.EntityManager)public boolean archiveObject(Object start, javax.persistence.EntityManager em)
CloneProviderarchiveObject in interface CloneProviderstart - the entity instance to archiveem - the entity managerpublic boolean archiveObject(Object start, javax.persistence.EntityManager em, boolean forceArchive)
CloneProviderarchiveObject in interface CloneProviderstart - the entity instance to archiveem - the entity managerforceArchive - ignore any state checks that could preclude the archivalpublic boolean sandBoxArchiveProductionObject(Object start, javax.persistence.EntityManager em)
CloneProvidersandBoxArchiveProductionObject in interface CloneProviderpublic boolean unArchiveObject(Object start, javax.persistence.EntityManager em)
unArchiveObject in interface CloneProviderpublic boolean setupProdAddState(Object start, javax.persistence.EntityManager em)
setupProdAddState in interface CloneProviderpublic boolean processCascadeSave(Object start, Object target, javax.persistence.EntityManager em)
processCascadeSave in interface CloneProviderstart - target - em - SandBoxDiscriminatorImpl.setOriginalRecordId(Long),
SandBoxDiscriminatorImpl.setTemplateRecordId(Long)Copyright © 2019. All rights reserved.