Class NodeArchiveServiceImpl

java.lang.Object
org.alfresco.repo.node.archive.NodeArchiveServiceImpl
All Implemented Interfaces:
NodeArchiveService

public class NodeArchiveServiceImpl extends Object implements NodeArchiveService
Implementation of the node archive abstraction.
Author:
Derek Hulley, Jamal Kaabi-Mofrad
  • Field Details

  • Constructor Details

    • NodeArchiveServiceImpl

      public NodeArchiveServiceImpl()
  • Method Details

    • setPolicyComponent

      public void setPolicyComponent(PolicyComponent policyComponent)
    • setNodeService

      public void setNodeService(NodeService nodeService)
    • setPermissionService

      public void setPermissionService(PermissionService permissionService)
    • setTransactionService

      public void setTransactionService(TransactionService transactionService)
    • getStoreArchiveNode

      public NodeRef getStoreArchiveNode(StoreRef originalStoreRef)
      Description copied from interface: NodeArchiveService
      Get the parent node that holds all nodes archived from the given store.
      Specified by:
      getStoreArchiveNode in interface NodeArchiveService
      Parameters:
      originalStoreRef - the original store of the archived nodes. This is the store where the currently archived nodes could originally be found.
      Returns:
      Returns the parent of the archived nodes, or null if archiving is not configured for the store
    • setJobLockService

      public void setJobLockService(JobLockService jobLockService)
    • init

      public void init()
    • setAuthorityService

      public void setAuthorityService(AuthorityService authorityService)
    • setCannedQueryRegistry

      public void setCannedQueryRegistry(org.alfresco.util.registry.NamedObjectRegistry<org.alfresco.query.CannedQueryFactory<ArchivedNodeEntity>> cannedQueryRegistry)
    • setTenantService

      public void setTenantService(TenantService tenantService)
    • setUserNamesAreCaseSensitive

      public void setUserNamesAreCaseSensitive(boolean userNamesAreCaseSensitive)
    • getArchivedNode

      public NodeRef getArchivedNode(NodeRef originalNodeRef)
      Description copied from interface: NodeArchiveService
      Get the likely node reference for the original node. There is no guarantee that the node exists in the archive store.
      Specified by:
      getArchivedNode in interface NodeArchiveService
      Parameters:
      originalNodeRef - the original node reference
      Returns:
      Returns the node ref of the node if it was archived.
    • restoreArchivedNode

      public RestoreNodeReport restoreArchivedNode(NodeRef archivedNodeRef, NodeRef destinationNodeRef, QName assocTypeQName, QName assocQName)
      This is the primary restore method that all restore methods fall back on. It executes the restore for the node in a separate transaction and attempts to catch the known conditions that can be reported back to the client.
      Specified by:
      restoreArchivedNode in interface NodeArchiveService
      Parameters:
      archivedNodeRef - the node's reference in the archive. This must be valid.
      destinationNodeRef - the parent of the restored node, or null to use the original parent node reference
      assocTypeQName - the type of the primary association to link the restored node to the destination parent, or null to use the orginal association type
      assocQName - the name of the primary association to be created, or null to use the original association name
      Returns:
      Returns the results of the restore operation
    • restoreArchivedNode

      public RestoreNodeReport restoreArchivedNode(NodeRef archivedNodeRef)
      Description copied from interface: NodeArchiveService
      Attempt to restore the given archived node into its original location.

      TRANSACTIONS: This method will execute in a new transaction.

      Specified by:
      restoreArchivedNode in interface NodeArchiveService
      Parameters:
      archivedNodeRef - the node's reference in the archive
      Returns:
      Returns the results of the restore operation
      See Also:
    • restoreArchivedNodes

      public List<RestoreNodeReport> restoreArchivedNodes(List<NodeRef> archivedNodeRefs)
      Description copied from interface: NodeArchiveService
      Attempt to restore a list of archived nodes into their original locations, using the original association types and names.

      TRANSACTIONS: This method will execute in a new transaction.

      Specified by:
      restoreArchivedNodes in interface NodeArchiveService
      Parameters:
      archivedNodeRefs - the nodes' references in the archive. These must be valid.
      Returns:
      Returns the results of the each attempted restore operation
      See Also:
    • restoreArchivedNodes

      public List<RestoreNodeReport> restoreArchivedNodes(List<NodeRef> archivedNodeRefs, NodeRef destinationNodeRef, QName assocTypeQName, QName assocQName)
      Description copied from interface: NodeArchiveService
      Attempt to restore a list of archived nodes into a new location.

      TRANSACTIONS: This method will execute in a new transaction.

      Specified by:
      restoreArchivedNodes in interface NodeArchiveService
      Parameters:
      archivedNodeRefs - the nodes' references in the archive. These must be valid.
      destinationNodeRef - the parent of the restored nodes, or null to use the original parent node references
      assocTypeQName - the type of the primary associations to link the restored node to the destination parent, or null to use the orginal association types
      assocQName - the name of the primary associations to be created, or null to use the original association names
      Returns:
      Returns the results of the each attempted restore operation
      See Also:
    • invokeBeforeRestoreArchivedNode

      protected void invokeBeforeRestoreArchivedNode(NodeRef nodeRef)
    • invokeOnRestoreArchivedNode

      protected void invokeOnRestoreArchivedNode(NodeRef nodeRef)
    • purgeArchivedNode

      public void purgeArchivedNode(NodeRef archivedNodeRef)
      This is the primary purge methd that all purge methods fall back on. It isolates the delete work in a new transaction.
      Specified by:
      purgeArchivedNode in interface NodeArchiveService
      Parameters:
      archivedNodeRef - the archived node to delete.
      See Also:
    • purgeArchivedNodes

      public void purgeArchivedNodes(List<NodeRef> archivedNodes)
      Description copied from interface: NodeArchiveService
      Permanently delete the archived nodes.
      Specified by:
      purgeArchivedNodes in interface NodeArchiveService
      Parameters:
      archivedNodes - the archived nodes to delete.
      See Also:
    • purgeAllArchivedNodes

      public void purgeAllArchivedNodes(StoreRef originalStoreRef)
      Uses batch processing and job locking to purge all archived nodes
      Specified by:
      purgeAllArchivedNodes in interface NodeArchiveService
      Parameters:
      originalStoreRef - the store that the items originally came from
    • listArchivedNodes

      public org.alfresco.query.PagingResults<NodeRef> listArchivedNodes(ArchivedNodesCannedQueryBuilder cannedQueryBuilder)
      Get the archived nodes deleted by the current user. If the current user is an Administrator, then all the deleted nodes are fetched.
      Specified by:
      listArchivedNodes in interface NodeArchiveService
      Parameters:
      cannedQueryBuilder - the object that holds the required and optional parameters to perform the canned query
      Returns:
      the results of the attempted search
    • hasFullAccess

      public boolean hasFullAccess(NodeRef nodeRef)
      Check if the current user has authority to access the archived node.
      Specified by:
      hasFullAccess in interface NodeArchiveService
      Parameters:
      nodeRef - NodeRef
      Returns:
      true if the currently authenticated user has authority to access the archived node, otherwise false.
    • hasAdminAccess

      protected boolean hasAdminAccess(String userID)
    • invokeBeforePurgeNode

      protected void invokeBeforePurgeNode(NodeRef nodeRef)
    • getTypeAndAspectQNames

      protected Set<QName> getTypeAndAspectQNames(NodeRef nodeRef)
      Get all aspect and node type qualified names
      Parameters:
      nodeRef - the node we are interested in
      Returns:
      Returns a set of qualified names containing the node type and all the node aspects, or null if the node no longer exists