Class BecpgCopyServiceImpl

java.lang.Object
org.alfresco.repo.copy.AbstractBaseCopyService
fr.becpg.repo.copy.BecpgCopyServiceImpl
All Implemented Interfaces:
org.alfresco.service.cmr.repository.CopyService

public class BecpgCopyServiceImpl extends org.alfresco.repo.copy.AbstractBaseCopyService implements org.alfresco.service.cmr.repository.CopyService

BecpgCopyServiceImpl class.

Version:
$Id: $Id
Author:
matthieu
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    private static class 
    cm:folder behaviour

    Nested classes/interfaces inherited from class org.alfresco.repo.copy.AbstractBaseCopyService

    org.alfresco.repo.copy.AbstractBaseCopyService.AssociationCopyInfo

    Nested classes/interfaces inherited from interface org.alfresco.service.cmr.repository.CopyService

    org.alfresco.service.cmr.repository.CopyService.CopyInfo
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private org.alfresco.repo.policy.ClassPolicyDelegate<org.alfresco.repo.copy.CopyServicePolicies.BeforeCopyPolicy>
     
    private org.alfresco.repo.policy.BehaviourFilter
     
    private org.alfresco.util.registry.NamedObjectRegistry<org.alfresco.query.CannedQueryFactory<org.alfresco.service.cmr.repository.CopyService.CopyInfo>>
     
    private org.alfresco.repo.node.ContentPropertyRestrictionInterceptor
     
    private static final String
     
     
    private org.alfresco.service.cmr.repository.NodeService
     
    private static final String
     
    private static org.apache.commons.logging.Log
     
    private org.alfresco.service.cmr.repository.NodeService
     
    private org.alfresco.repo.policy.ClassPolicyDelegate<org.alfresco.repo.copy.CopyServicePolicies.OnCopyCompletePolicy>
     
    private org.alfresco.repo.policy.ClassPolicyDelegate<org.alfresco.repo.copy.CopyServicePolicies.OnCopyNodePolicy>
     
    private org.alfresco.service.cmr.security.PermissionService
     
    private org.alfresco.repo.policy.PolicyComponent
     
    private org.alfresco.service.cmr.security.PublicServiceAccessService
     
    private static final String
     
    private org.alfresco.service.cmr.rule.RuleService
     
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor for BecpgCopyServiceImpl.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    beforeDeleteOriginalAssociation(org.alfresco.service.cmr.repository.AssociationRef nodeAssocRef)
    Callback behaviour for the 'original' assoc ('copiedfrom' aspect).
    private Map<org.alfresco.service.namespace.QName,Serializable>
    buildCopyProperties(org.alfresco.repo.copy.CopyDetails copyDetails, Set<org.alfresco.service.namespace.QName> classQNames, Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback> callbacks)
    Constructs the properties to copy that apply to the type and default aspects
    void
    copy(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef)
    Defer to the standard implementation with copyChildren set to false
    org.alfresco.service.cmr.repository.NodeRef
    copy(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetParentNodeRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName)
    Defer to the standard implementation with copyChildren set to false
    org.alfresco.service.cmr.repository.NodeRef
    copy(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetParentRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, boolean copyChildren)
    org.alfresco.service.cmr.repository.NodeRef
    copyAndRename(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef destinationParent, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, boolean copyChildren)
    private void
    copyAspects(org.alfresco.repo.copy.CopyDetails copyDetails, org.alfresco.service.cmr.repository.NodeRef targetNodeRef, Set<org.alfresco.service.namespace.QName> aspectsToIgnore, Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback> callbacks)
    Copies aspects from the source to the target node.
    private void
    copyChildren(org.alfresco.repo.copy.CopyDetails copyDetails, org.alfresco.service.cmr.repository.NodeRef copyTarget, boolean copyTargetIsNew, boolean copyChildren, Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiesByOriginals, Set<org.alfresco.service.cmr.repository.NodeRef> copies, Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback> callbacks)
     
    private void
    copyChildren(org.alfresco.repo.copy.CopyDetails copyDetails, org.alfresco.service.namespace.QName classQName, org.alfresco.service.cmr.repository.NodeRef copyTarget, boolean copyTargetIsNew, boolean copyChildren, Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiesByOriginals, Set<org.alfresco.service.cmr.repository.NodeRef> copies, Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback> callbacks)
     
    private org.alfresco.service.cmr.repository.NodeRef
    copyImpl(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetParentRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, boolean copyChildren, boolean dropName, Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiesByOriginals, Set<org.alfresco.service.cmr.repository.NodeRef> copies)
     
    private void
    copyPendingAssociations(Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiedNodeRefs)
    Copy any remaining associations that could not be copied or ignored during the copy process.
    private void
    copyPermissions(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef destinationNodeRef)
    Copies the permissions of the source node reference onto the destination node reference
    private void
    copyProperties(org.alfresco.repo.copy.CopyDetails copyDetails, org.alfresco.service.cmr.repository.NodeRef targetNodeRef, org.alfresco.service.namespace.QName classQName, Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback> callbacks)
    Copies the properties for the node type or aspect onto the destination node.
    private void
    copyResidualProperties(org.alfresco.repo.copy.CopyDetails copyDetails, org.alfresco.service.cmr.repository.NodeRef targetNodeRef)
    Copy properties that do not belong to the source node's type or any of the aspects.
    private org.alfresco.repo.copy.CopyBehaviourCallback
    getCallback(org.alfresco.service.namespace.QName sourceClassQName, org.alfresco.repo.copy.CopyDetails copyDetails)
     
    org.alfresco.repo.copy.CopyBehaviourCallback
    getCallbackForCopiedFromAspect(org.alfresco.service.namespace.QName classRef, org.alfresco.repo.copy.CopyDetails copyDetails)
    Callback behaviour retrieval for the 'copiedfrom' aspect.
    org.alfresco.repo.copy.CopyBehaviourCallback
    getCallbackForFolderType(org.alfresco.service.namespace.QName classRef, org.alfresco.repo.copy.CopyDetails copyDetails)
    Callback behaviour retrieval for ContentModel.TYPE_FOLDER aspect.
    org.alfresco.repo.copy.CopyBehaviourCallback
    getCallbackForOwnableAspect(org.alfresco.service.namespace.QName classRef, org.alfresco.repo.copy.CopyDetails copyDetails)
    Callback behaviour retrieval for the 'ownable' aspect.
    private Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback>
    getCallbacks(org.alfresco.repo.copy.CopyDetails copyDetails)
     
    List<org.alfresco.service.cmr.repository.NodeRef>
    getCopies(org.alfresco.service.cmr.repository.NodeRef nodeRef)
    org.alfresco.query.PagingResults<org.alfresco.service.cmr.repository.CopyService.CopyInfo>
    getCopies(org.alfresco.service.cmr.repository.NodeRef originalNodeRef, org.alfresco.query.PagingRequest pagingRequest)
    org.alfresco.query.PagingResults<org.alfresco.service.cmr.repository.CopyService.CopyInfo>
    getCopies(org.alfresco.service.cmr.repository.NodeRef originalNodeRef, org.alfresco.service.cmr.repository.NodeRef copyParentNodeRef, org.alfresco.query.PagingRequest pagingRequest)
    private org.alfresco.repo.copy.CopyDetails
    getCopyDetails(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetParentNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName)
    Gets the copy details.
    private Set<org.alfresco.service.namespace.QName>
    getDefaultAspects(org.alfresco.service.namespace.QName sourceNodeTypeQName)
     
    org.alfresco.service.cmr.repository.NodeRef
    getOriginal(org.alfresco.service.cmr.repository.NodeRef nodeRef)
    getTopLevelNodeNewName(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetParentRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName)
    Determines if top-level node name will be changed during copy according to policies.
    void
    Initialise method
    private void
    invokeBeforeCopy(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef)
    Invokes the before copy policy for the node reference provided
    private void
    invokeBeforeCopy(org.alfresco.service.namespace.QName typeQName, org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef)
     
    private void
    invokeCopyComplete(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef, boolean copyToNewNode, Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiedNodeRefs)
    Invokes the copy complete policy for the node reference provided
    private void
    invokeCopyComplete(org.alfresco.service.namespace.QName typeQName, org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef, boolean copyToNewNode, Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiedNodeRefs)
     
    private boolean
    isExcludeTypes(org.alfresco.service.namespace.QName sourceClassQName)
     
    private org.alfresco.service.cmr.repository.NodeRef
    recursiveCopy(org.alfresco.repo.copy.CopyDetails copyDetails, boolean copyChildren, boolean dropName, Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiesByOriginal, Set<org.alfresco.service.cmr.repository.NodeRef> copies, Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback> callbacks)
    Recursive copy algorithm
    void
    setBehaviourFilter(org.alfresco.repo.policy.BehaviourFilter behaviourFilter)
    Setter for the field behaviourFilter.
    void
    setCannedQueryRegistry(org.alfresco.util.registry.NamedObjectRegistry<org.alfresco.query.CannedQueryFactory<org.alfresco.service.cmr.repository.CopyService.CopyInfo>> cannedQueryRegistry)
    Setter for the field cannedQueryRegistry.
    void
    setContentPropertyRestrictionInterceptor(org.alfresco.repo.node.ContentPropertyRestrictionInterceptor contentPropertyRestrictionInterceptor)
    Setter for the field contentPropertyRestrictionInterceptor.
    void
    Setter for the field dictionaryService.
    void
    setInternalNodeService(org.alfresco.service.cmr.repository.NodeService internalNodeService)
    Setter for the field internalNodeService.
    void
    setNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)
    Setter for the field nodeService.
    void
    setPermissionService(org.alfresco.service.cmr.security.PermissionService permissionService)
    Setter for the field permissionService.
    void
    setPolicyComponent(org.alfresco.repo.policy.PolicyComponent policyComponent)
    Setter for the field policyComponent.
    void
    setPublicServiceAccessService(org.alfresco.service.cmr.security.PublicServiceAccessService publicServiceAccessService)
    Setter for the field publicServiceAccessService.
    void
    setRuleService(org.alfresco.service.cmr.rule.RuleService ruleService)
    Setter for the field ruleService.
    void
    Setter for the field systemConfigurationService.
    private String
     

    Methods inherited from class org.alfresco.repo.copy.AbstractBaseCopyService

    getAssociationCopyInfo, getSystemNamespaces, setSystemNamespaces

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • logger

      private static org.apache.commons.logging.Log logger
    • QUERY_FACTORY_GET_COPIES

      private static final String QUERY_FACTORY_GET_COPIES
      See Also:
    • COPY_OF_LABEL

      private static final String COPY_OF_LABEL
      See Also:
    • nodeService

      private org.alfresco.service.cmr.repository.NodeService nodeService
    • internalNodeService

      private org.alfresco.service.cmr.repository.NodeService internalNodeService
    • cannedQueryRegistry

      private org.alfresco.util.registry.NamedObjectRegistry<org.alfresco.query.CannedQueryFactory<org.alfresco.service.cmr.repository.CopyService.CopyInfo>> cannedQueryRegistry
    • dictionaryService

      private EntityDictionaryService dictionaryService
    • policyComponent

      private org.alfresco.repo.policy.PolicyComponent policyComponent
    • behaviourFilter

      private org.alfresco.repo.policy.BehaviourFilter behaviourFilter
    • ruleService

      private org.alfresco.service.cmr.rule.RuleService ruleService
    • permissionService

      private org.alfresco.service.cmr.security.PermissionService permissionService
    • publicServiceAccessService

      private org.alfresco.service.cmr.security.PublicServiceAccessService publicServiceAccessService
    • contentPropertyRestrictionInterceptor

      private org.alfresco.repo.node.ContentPropertyRestrictionInterceptor contentPropertyRestrictionInterceptor
    • systemConfigurationService

      private SystemConfigurationService systemConfigurationService
    • onCopyNodeDelegate

      private org.alfresco.repo.policy.ClassPolicyDelegate<org.alfresco.repo.copy.CopyServicePolicies.OnCopyNodePolicy> onCopyNodeDelegate
    • onCopyCompleteDelegate

      private org.alfresco.repo.policy.ClassPolicyDelegate<org.alfresco.repo.copy.CopyServicePolicies.OnCopyCompletePolicy> onCopyCompleteDelegate
    • beforeCopyDelegate

      private org.alfresco.repo.policy.ClassPolicyDelegate<org.alfresco.repo.copy.CopyServicePolicies.BeforeCopyPolicy> beforeCopyDelegate
    • KEY_POST_COPY_ASSOCS

      private static final String KEY_POST_COPY_ASSOCS
      See Also:
  • Constructor Details

    • BecpgCopyServiceImpl

      public BecpgCopyServiceImpl()

      Constructor for BecpgCopyServiceImpl.

  • Method Details

    • typesToReset

      private String typesToReset()
    • setContentPropertyRestrictionInterceptor

      public void setContentPropertyRestrictionInterceptor(org.alfresco.repo.node.ContentPropertyRestrictionInterceptor contentPropertyRestrictionInterceptor)

      Setter for the field contentPropertyRestrictionInterceptor.

      Parameters:
      contentPropertyRestrictionInterceptor - a ContentPropertyRestrictionInterceptor object.
    • setSystemConfigurationService

      public void setSystemConfigurationService(SystemConfigurationService systemConfigurationService)

      Setter for the field systemConfigurationService.

      Parameters:
      systemConfigurationService - a SystemConfigurationService object
    • setNodeService

      public void setNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)

      Setter for the field nodeService.

      Parameters:
      nodeService - the node service
    • setInternalNodeService

      public void setInternalNodeService(org.alfresco.service.cmr.repository.NodeService internalNodeService)

      Setter for the field internalNodeService.

      Parameters:
      internalNodeService - the internal node service
    • setCannedQueryRegistry

      public void setCannedQueryRegistry(org.alfresco.util.registry.NamedObjectRegistry<org.alfresco.query.CannedQueryFactory<org.alfresco.service.cmr.repository.CopyService.CopyInfo>> cannedQueryRegistry)

      Setter for the field cannedQueryRegistry.

      Parameters:
      cannedQueryRegistry - a NamedObjectRegistry object.
    • setDictionaryService

      public void setDictionaryService(EntityDictionaryService dictionaryService)

      Setter for the field dictionaryService.

      Parameters:
      dictionaryService - a EntityDictionaryService object.
    • setPolicyComponent

      public void setPolicyComponent(org.alfresco.repo.policy.PolicyComponent policyComponent)

      Setter for the field policyComponent.

      Parameters:
      policyComponent - the policy component
    • setBehaviourFilter

      public void setBehaviourFilter(org.alfresco.repo.policy.BehaviourFilter behaviourFilter)

      Setter for the field behaviourFilter.

      Parameters:
      behaviourFilter - used to disable specific behaviours while doing background tasks
    • setRuleService

      public void setRuleService(org.alfresco.service.cmr.rule.RuleService ruleService)

      Setter for the field ruleService.

      Parameters:
      ruleService - the rule service
    • setPermissionService

      public void setPermissionService(org.alfresco.service.cmr.security.PermissionService permissionService)

      Setter for the field permissionService.

      Parameters:
      permissionService - the permissionService to set
    • setPublicServiceAccessService

      public void setPublicServiceAccessService(org.alfresco.service.cmr.security.PublicServiceAccessService publicServiceAccessService)

      Setter for the field publicServiceAccessService.

      Parameters:
      publicServiceAccessService - the publicServiceAccessService to set
    • init

      public void init()
      Initialise method
    • copy

      public org.alfresco.service.cmr.repository.NodeRef copy(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetParentRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, boolean copyChildren)
      Specified by:
      copy in interface org.alfresco.service.cmr.repository.CopyService
    • copyAndRename

      public org.alfresco.service.cmr.repository.NodeRef copyAndRename(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef destinationParent, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, boolean copyChildren)
      Specified by:
      copyAndRename in interface org.alfresco.service.cmr.repository.CopyService
    • copy

      public org.alfresco.service.cmr.repository.NodeRef copy(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetParentNodeRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName)
      Defer to the standard implementation with copyChildren set to false
      Specified by:
      copy in interface org.alfresco.service.cmr.repository.CopyService
    • copy

      public void copy(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef)
      Defer to the standard implementation with copyChildren set to false
      Specified by:
      copy in interface org.alfresco.service.cmr.repository.CopyService
    • getOriginal

      public org.alfresco.service.cmr.repository.NodeRef getOriginal(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Specified by:
      getOriginal in interface org.alfresco.service.cmr.repository.CopyService
    • getCopies

      public List<org.alfresco.service.cmr.repository.NodeRef> getCopies(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Specified by:
      getCopies in interface org.alfresco.service.cmr.repository.CopyService
    • getCopies

      public org.alfresco.query.PagingResults<org.alfresco.service.cmr.repository.CopyService.CopyInfo> getCopies(org.alfresco.service.cmr.repository.NodeRef originalNodeRef, org.alfresco.query.PagingRequest pagingRequest)
      Specified by:
      getCopies in interface org.alfresco.service.cmr.repository.CopyService
    • getCopies

      public org.alfresco.query.PagingResults<org.alfresco.service.cmr.repository.CopyService.CopyInfo> getCopies(org.alfresco.service.cmr.repository.NodeRef originalNodeRef, org.alfresco.service.cmr.repository.NodeRef copyParentNodeRef, org.alfresco.query.PagingRequest pagingRequest)
      Specified by:
      getCopies in interface org.alfresco.service.cmr.repository.CopyService
    • copyImpl

      private org.alfresco.service.cmr.repository.NodeRef copyImpl(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetParentRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, boolean copyChildren, boolean dropName, Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiesByOriginals, Set<org.alfresco.service.cmr.repository.NodeRef> copies)
      Returns:
      Returns null if the node was denied a copy
    • recursiveCopy

      private org.alfresco.service.cmr.repository.NodeRef recursiveCopy(org.alfresco.repo.copy.CopyDetails copyDetails, boolean copyChildren, boolean dropName, Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiesByOriginal, Set<org.alfresco.service.cmr.repository.NodeRef> copies, Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback> callbacks)
      Recursive copy algorithm
      Parameters:
      dropName - drop the name property when associations don't allow duplicately named children
    • getDefaultAspects

      private Set<org.alfresco.service.namespace.QName> getDefaultAspects(org.alfresco.service.namespace.QName sourceNodeTypeQName)
    • buildCopyProperties

      private Map<org.alfresco.service.namespace.QName,Serializable> buildCopyProperties(org.alfresco.repo.copy.CopyDetails copyDetails, Set<org.alfresco.service.namespace.QName> classQNames, Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback> callbacks)
      Constructs the properties to copy that apply to the type and default aspects
    • invokeBeforeCopy

      private void invokeBeforeCopy(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef)
      Invokes the before copy policy for the node reference provided
      Parameters:
      sourceNodeRef - the source node reference
      targetNodeRef - the destination node reference
    • invokeBeforeCopy

      private void invokeBeforeCopy(org.alfresco.service.namespace.QName typeQName, org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef)
    • invokeCopyComplete

      private void invokeCopyComplete(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef, boolean copyToNewNode, Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiedNodeRefs)
      Invokes the copy complete policy for the node reference provided
      Parameters:
      sourceNodeRef - the source node reference
      targetNodeRef - the destination node reference
      copiedNodeRefs - the map of copied node references
    • invokeCopyComplete

      private void invokeCopyComplete(org.alfresco.service.namespace.QName typeQName, org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef, boolean copyToNewNode, Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiedNodeRefs)
    • copyPendingAssociations

      private void copyPendingAssociations(Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiedNodeRefs)
      Copy any remaining associations that could not be copied or ignored during the copy process. See ALF-958: Target associations aren't copied.
    • copyPermissions

      private void copyPermissions(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef destinationNodeRef)
      Copies the permissions of the source node reference onto the destination node reference
      Parameters:
      sourceNodeRef - the source node reference
      destinationNodeRef - the destination node reference
    • getCopyDetails

      private org.alfresco.repo.copy.CopyDetails getCopyDetails(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetParentNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName)
      Gets the copy details. This calls the appropriate policies that have been registered against the node and aspect types in order to pick-up any type specific copy behaviour.

      The full NodeService is used for property retrieval. After this, read permission can be assumed to have passed on the source node - at least w.r.t. properties and aspects.

      NOTE: If a target node is not supplied, then one is created in the same store as the target parent node. This allows behavioural code always know which node will be copied to, even if the node does not exist.

    • getCallbacks

      private Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback> getCallbacks(org.alfresco.repo.copy.CopyDetails copyDetails)
      Returns:
      Returns a map of all the copy behaviours keyed by type and aspect qualified names
    • getCallback

      private org.alfresco.repo.copy.CopyBehaviourCallback getCallback(org.alfresco.service.namespace.QName sourceClassQName, org.alfresco.repo.copy.CopyDetails copyDetails)
      Returns:
      Returns the copy callback for the given criteria
    • copyProperties

      private void copyProperties(org.alfresco.repo.copy.CopyDetails copyDetails, org.alfresco.service.cmr.repository.NodeRef targetNodeRef, org.alfresco.service.namespace.QName classQName, Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback> callbacks)
      Copies the properties for the node type or aspect onto the destination node.
    • isExcludeTypes

      private boolean isExcludeTypes(org.alfresco.service.namespace.QName sourceClassQName)
    • copyResidualProperties

      private void copyResidualProperties(org.alfresco.repo.copy.CopyDetails copyDetails, org.alfresco.service.cmr.repository.NodeRef targetNodeRef)
      Copy properties that do not belong to the source node's type or any of the aspects.
    • copyAspects

      private void copyAspects(org.alfresco.repo.copy.CopyDetails copyDetails, org.alfresco.service.cmr.repository.NodeRef targetNodeRef, Set<org.alfresco.service.namespace.QName> aspectsToIgnore, Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback> callbacks)
      Copies aspects from the source to the target node.
    • copyChildren

      private void copyChildren(org.alfresco.repo.copy.CopyDetails copyDetails, org.alfresco.service.cmr.repository.NodeRef copyTarget, boolean copyTargetIsNew, boolean copyChildren, Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiesByOriginals, Set<org.alfresco.service.cmr.repository.NodeRef> copies, Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback> callbacks)
      Parameters:
      copyChildren - false if the client selected not to recurse
    • copyChildren

      private void copyChildren(org.alfresco.repo.copy.CopyDetails copyDetails, org.alfresco.service.namespace.QName classQName, org.alfresco.service.cmr.repository.NodeRef copyTarget, boolean copyTargetIsNew, boolean copyChildren, Map<org.alfresco.service.cmr.repository.NodeRef,org.alfresco.service.cmr.repository.NodeRef> copiesByOriginals, Set<org.alfresco.service.cmr.repository.NodeRef> copies, Map<org.alfresco.service.namespace.QName,org.alfresco.repo.copy.CopyBehaviourCallback> callbacks)
      Parameters:
      copyChildren - false if the client selected not to recurse
    • beforeDeleteOriginalAssociation

      public void beforeDeleteOriginalAssociation(org.alfresco.service.cmr.repository.AssociationRef nodeAssocRef)
      Callback behaviour for the 'original' assoc ('copiedfrom' aspect).
      Parameters:
      nodeAssocRef - a AssociationRef object.
    • getCallbackForCopiedFromAspect

      public org.alfresco.repo.copy.CopyBehaviourCallback getCallbackForCopiedFromAspect(org.alfresco.service.namespace.QName classRef, org.alfresco.repo.copy.CopyDetails copyDetails)
      Callback behaviour retrieval for the 'copiedfrom' aspect.
      Parameters:
      classRef - a QName object.
      copyDetails - a CopyDetails object.
      Returns:
      Returns DoNothingCopyBehaviourCallback always
    • getCallbackForFolderType

      public org.alfresco.repo.copy.CopyBehaviourCallback getCallbackForFolderType(org.alfresco.service.namespace.QName classRef, org.alfresco.repo.copy.CopyDetails copyDetails)
      Callback behaviour retrieval for ContentModel.TYPE_FOLDER aspect.
      Parameters:
      classRef - a QName object.
      copyDetails - a CopyDetails object.
      Returns:
      Returns FolderTypeCopyBehaviourCallback.INSTANCE
    • getCallbackForOwnableAspect

      public org.alfresco.repo.copy.CopyBehaviourCallback getCallbackForOwnableAspect(org.alfresco.service.namespace.QName classRef, org.alfresco.repo.copy.CopyDetails copyDetails)
      Callback behaviour retrieval for the 'ownable' aspect.
      Parameters:
      classRef - a QName object.
      copyDetails - a CopyDetails object.
      Returns:
      Returns DoNothingCopyBehaviourCallback always
    • getTopLevelNodeNewName

      public String getTopLevelNodeNewName(org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetParentRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName)
      Determines if top-level node name will be changed during copy according to policies.
      Specified by:
      getTopLevelNodeNewName in interface org.alfresco.service.cmr.repository.CopyService