Package org.alfresco.repo.node.archive
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 Summary
Fields Modifier and Type Field Description protected NodeServicenodeService-
Fields inherited from interface org.alfresco.repo.node.archive.NodeArchiveService
QNAME_ARCHIVED_ITEM
-
-
Constructor Summary
Constructors Constructor Description NodeArchiveServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description NodeRefgetArchivedNode(NodeRef originalNodeRef)Get the likely node reference for the original node.NodeRefgetStoreArchiveNode(StoreRef originalStoreRef)Get the parent node that holds all nodes archived from the given store.protected Set<QName>getTypeAndAspectQNames(NodeRef nodeRef)Get all aspect and node type qualified namesprotected booleanhasAdminAccess(String userID)booleanhasFullAccess(NodeRef nodeRef)Check if the current user has authority to access the archived node.voidinit()protected voidinvokeBeforePurgeNode(NodeRef nodeRef)protected voidinvokeBeforeRestoreArchivedNode(NodeRef nodeRef)protected voidinvokeOnRestoreArchivedNode(NodeRef nodeRef)PagingResults<NodeRef>listArchivedNodes(ArchivedNodesCannedQueryBuilder cannedQueryBuilder)Get the archived nodes deleted by the current user.voidpurgeAllArchivedNodes(StoreRef originalStoreRef)Uses batch processing and job locking to purge all archived nodesvoidpurgeArchivedNode(NodeRef archivedNodeRef)This is the primary purge methd that all purge methods fall back on.voidpurgeArchivedNodes(List<NodeRef> archivedNodes)Permanently delete the archived nodes.RestoreNodeReportrestoreArchivedNode(NodeRef archivedNodeRef)Attempt to restore the given archived node into its original location.RestoreNodeReportrestoreArchivedNode(NodeRef archivedNodeRef, NodeRef destinationNodeRef, QName assocTypeQName, QName assocQName)This is the primary restore method that allrestoremethods fall back on.List<RestoreNodeReport>restoreArchivedNodes(List<NodeRef> archivedNodeRefs)Attempt to restore a list of archived nodes into their original locations, using the original association types and names.List<RestoreNodeReport>restoreArchivedNodes(List<NodeRef> archivedNodeRefs, NodeRef destinationNodeRef, QName assocTypeQName, QName assocQName)Attempt to restore a list of archived nodes into a new location.voidsetAuthorityService(AuthorityService authorityService)voidsetCannedQueryRegistry(NamedObjectRegistry<CannedQueryFactory<ArchivedNodeEntity>> cannedQueryRegistry)voidsetJobLockService(JobLockService jobLockService)voidsetNodeService(NodeService nodeService)voidsetPermissionService(PermissionService permissionService)voidsetPolicyComponent(PolicyComponent policyComponent)voidsetTenantService(TenantService tenantService)voidsetTransactionService(TransactionService transactionService)voidsetUserNamesAreCaseSensitive(boolean userNamesAreCaseSensitive)
-
-
-
Field Detail
-
nodeService
protected NodeService nodeService
-
-
Method Detail
-
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:NodeArchiveServiceGet the parent node that holds all nodes archived from the given store.- Specified by:
getStoreArchiveNodein interfaceNodeArchiveService- 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(NamedObjectRegistry<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:NodeArchiveServiceGet the likely node reference for the original node. There is no guarantee that the node exists in the archive store.- Specified by:
getArchivedNodein interfaceNodeArchiveService- 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 allrestoremethods 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:
restoreArchivedNodein interfaceNodeArchiveService- 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 referenceassocTypeQName- the type of the primary association to link the restored node to the destination parent, or null to use the orginal association typeassocQName- 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:NodeArchiveServiceAttempt to restore the given archived node into its original location.TRANSACTIONS: This method will execute in a new transaction.
- Specified by:
restoreArchivedNodein interfaceNodeArchiveService- Parameters:
archivedNodeRef- the node's reference in the archive- Returns:
- Returns the results of the restore operation
- See Also:
restoreArchivedNode(NodeRef, NodeRef, QName, QName)
-
restoreArchivedNodes
public List<RestoreNodeReport> restoreArchivedNodes(List<NodeRef> archivedNodeRefs)
Description copied from interface:NodeArchiveServiceAttempt 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:
restoreArchivedNodesin interfaceNodeArchiveService- 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(List, NodeRef, QName, QName)
-
restoreArchivedNodes
public List<RestoreNodeReport> restoreArchivedNodes(List<NodeRef> archivedNodeRefs, NodeRef destinationNodeRef, QName assocTypeQName, QName assocQName)
Description copied from interface:NodeArchiveServiceAttempt to restore a list of archived nodes into a new location.TRANSACTIONS: This method will execute in a new transaction.
- Specified by:
restoreArchivedNodesin interfaceNodeArchiveService- 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 referencesassocTypeQName- the type of the primary associations to link the restored node to the destination parent, or null to use the orginal association typesassocQName- 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:
restoreArchivedNode(NodeRef, NodeRef, QName, QName)
-
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:
purgeArchivedNodein interfaceNodeArchiveService- Parameters:
archivedNodeRef- the archived node to delete.- See Also:
NodeService.deleteNode(NodeRef)
-
purgeArchivedNodes
public void purgeArchivedNodes(List<NodeRef> archivedNodes)
Description copied from interface:NodeArchiveServicePermanently delete the archived nodes.- Specified by:
purgeArchivedNodesin interfaceNodeArchiveService- Parameters:
archivedNodes- the archived nodes to delete.- See Also:
purgeArchivedNode(NodeRef)
-
purgeAllArchivedNodes
public void purgeAllArchivedNodes(StoreRef originalStoreRef)
Uses batch processing and job locking to purge all archived nodes- Specified by:
purgeAllArchivedNodesin interfaceNodeArchiveService- Parameters:
originalStoreRef- the store that the items originally came from
-
listArchivedNodes
public 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:
listArchivedNodesin interfaceNodeArchiveService- 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:
hasFullAccessin interfaceNodeArchiveService- 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
-
-