public class LockServiceImpl extends java.lang.Object implements LockService, NodeServicePolicies.OnCreateChildAssociationPolicy, NodeServicePolicies.BeforeUpdateNodePolicy, NodeServicePolicies.BeforeDeleteNodePolicy, NodeServicePolicies.OnMoveNodePolicy, CopyServicePolicies.OnCopyNodePolicy, VersionServicePolicies.BeforeCreateVersionPolicy, VersionServicePolicies.OnCreateVersionPolicy
Policy.ArgQNAMEQNAMEQNAMEQNAMEARG_0, ARG_1, QNAMEQNAMEQNAME| Constructor and Description |
|---|
LockServiceImpl() |
| Modifier and Type | Method and Description |
|---|---|
void |
beforeCreateVersion(org.alfresco.service.cmr.repository.NodeRef versionableNode)
Ensures that node is not locked.
|
void |
beforeDeleteNode(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Ensures that node is not locked.
|
void |
beforeUpdateNode(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Ensures that node is not locked.
|
void |
checkForLock(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Checks to see if the current user has access to the specified node.
|
void |
enableLocks()
After calling suspendLocks turn the locks back on.
|
BehaviourFilter |
getBehaviourFilter() |
CopyBehaviourCallback |
getCopyCallback(org.alfresco.service.namespace.QName classRef,
CopyDetails copyDetails)
Called for all types and aspects before copying a node.
|
java.util.List |
getLocks(org.alfresco.service.cmr.repository.StoreRef storeRef)
Get all the node references that the current user has locked.
|
java.util.List |
getLocks(org.alfresco.service.cmr.repository.StoreRef storeRef,
LockType lockType)
Get all the node references that the current user has locked filtered by the provided lock type.
|
LockStatus |
getLockStatus(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Gets the lock status for the node reference relative to the current user.
|
LockStatus |
getLockStatus(org.alfresco.service.cmr.repository.NodeRef nodeRef,
java.lang.String userName)
Gets the lock status for a node and a user name
|
LockType |
getLockType(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Gets the lock type for the node indicated.
|
void |
init()
Initialise methods called by Spring framework
|
void |
lock(java.util.Collection nodeRefs,
LockType lockType,
int timeToExpire)
Places a lock on all the nodes referenced in the passed list.
|
void |
lock(org.alfresco.service.cmr.repository.NodeRef nodeRef,
LockType lockType)
Places a lock on a node.
|
void |
lock(org.alfresco.service.cmr.repository.NodeRef nodeRef,
LockType lockType,
int timeToExpire)
Places a lock on a node.
|
void |
lock(org.alfresco.service.cmr.repository.NodeRef nodeRef,
LockType lockType,
int timeToExpire,
boolean lockChildren)
Places a lock on a node and optionally on all its children.
|
void |
onCreateChildAssociation(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef,
boolean isNewNode)
Ensures that the parent is not locked.
|
void |
onCreateVersion(org.alfresco.service.namespace.QName classRef,
org.alfresco.service.cmr.repository.NodeRef versionableNode,
java.util.Map versionProperties,
PolicyScope nodeDetails)
OnCreateVersion behaviour for the lock aspect
|
void |
onMoveNode(org.alfresco.service.cmr.repository.ChildAssociationRef oldChildAssocRef,
org.alfresco.service.cmr.repository.ChildAssociationRef newChildAssocRef)
Called when a node has been moved.
|
void |
setAuthenticationService(AuthenticationService authenticationService) |
void |
setBehaviourFilter(BehaviourFilter behaviourFilter) |
void |
setNodeService(org.alfresco.service.cmr.repository.NodeService nodeService) |
void |
setPolicyComponent(PolicyComponent policyComponent) |
void |
setSearchService(org.alfresco.service.cmr.search.SearchService searchService) |
void |
setTenantService(org.alfresco.repo.tenant.TenantService tenantService) |
void |
suspendLocks()
Allow the current transaction to update a node despite any locks that may be on it.
|
void |
unlock(java.util.Collection nodeRefs)
Removes a lock on the nodes provided.
|
void |
unlock(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Removes the lock on a node; if there is no lock then nothing is done.
|
void |
unlock(org.alfresco.service.cmr.repository.NodeRef nodeRef,
boolean unlockChildren)
Removes the lock on a node and optional on its children.
|
public void setNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)
public void setTenantService(org.alfresco.repo.tenant.TenantService tenantService)
public void setPolicyComponent(PolicyComponent policyComponent)
public void setAuthenticationService(AuthenticationService authenticationService)
public void setSearchService(org.alfresco.service.cmr.search.SearchService searchService)
public void init()
public void lock(org.alfresco.service.cmr.repository.NodeRef nodeRef,
LockType lockType)
LockServiceThe lock prevents any other user or process from comitting updates to the node until the lock is released.
The lock will be owned by the current user.
A lock made with this call will never expire.
lock in interface LockServicenodeRef - a reference to a nodelockType - the lock typeorg.alfresco.service.cmr.lock.LockService#lock(org.alfresco.service.cmr.repository.NodeRef, java.lang.String, org.alfresco.service.cmr.lock.LockType)public void lock(org.alfresco.service.cmr.repository.NodeRef nodeRef,
LockType lockType,
int timeToExpire)
LockServiceThe lock prevents any other user or process from comitting updates to the node until the lock is released.
The lock will be owned by the current user.
If the time to expire is 0 then the lock will never expire. Otherwise the timeToExpire indicates the number of seconds before the lock expires. When a lock expires the lock is considered to have been released.
If the node is already locked and the user is the lock owner then the lock will be renewed with the passed timeToExpire.
lock in interface LockServicenodeRef - a reference to a nodelockType - the lock typetimeToExpire - the number of seconds before the locks expires.org.alfresco.service.cmr.lock.LockService#lock(org.alfresco.service.cmr.repository.NodeRef, java.lang.String, org.alfresco.service.cmr.lock.LockType, int)public void lock(org.alfresco.service.cmr.repository.NodeRef nodeRef,
LockType lockType,
int timeToExpire,
boolean lockChildren)
throws UnableToAquireLockException
LockServiceThe lock prevents any other user or process from comitting updates to the node until the lock is released.
The lock will be owned by the current user.
If any one of the child locks can not be taken then an exception will be raised and all locks canceled.
If the time to expire is 0 then the lock will never expire. Otherwise the timeToExpire indicates the number of seconds before the lock expires. When a lock expires the lock is considered to have been released.
If the node is already locked and the user is the lock owner then the lock will be renewed with the passed timeToExpire.
lock in interface LockServicenodeRef - a reference to a nodelockType - the lock typetimeToExpire - the number of seconds before the locks expires.lockChildren - if true indicates that all the children (and
grandchildren, etc) of the node will also be locked,
false otherwiseUnableToAquireLockException - thrown if the lock could not be obtainedorg.alfresco.service.cmr.lock.LockService#lock(org.alfresco.service.cmr.repository.NodeRef, java.lang.String, org.alfresco.service.cmr.lock.LockType, int, boolean)public void lock(java.util.Collection nodeRefs,
LockType lockType,
int timeToExpire)
throws UnableToAquireLockException
LockServiceThe lock prevents any other user or process from comitting updates to the node until the lock is released.
The lock will be owned by the current user.
If the time to expire is 0 then the lock will never expire. Otherwise the timeToExpire indicates the number of seconds before the lock expires. When a lock expires the lock is considered to have been released.
If the node is already locked and the current user is the lock owner then the lock will be renewed with the passed timeToExpire.
lock in interface LockServicenodeRefs - a list of node referenceslockType - the type of lock being createdtimeToExpire - the number of seconds before the locks expires.UnableToAquireLockException - thrown if the lock could not be obtainedorg.alfresco.service.cmr.lock.LockService#lock(java.util.Collection, java.lang.String, org.alfresco.service.cmr.lock.LockType, int)public void unlock(org.alfresco.service.cmr.repository.NodeRef nodeRef)
throws UnableToReleaseLockException
LockServiceThe user must have sufficient permissions to remove the lock (ie: be the owner of the lock or have admin rights) otherwise an exception will be raised.
unlock in interface LockServicenodeRef - a reference to a nodeUnableToReleaseLockException - thrown if the lock could not be releasedorg.alfresco.service.cmr.lock.LockService#unlock(NodeRef, String)public void unlock(org.alfresco.service.cmr.repository.NodeRef nodeRef,
boolean unlockChildren)
throws UnableToReleaseLockException
LockServiceThe user must have sufficient permissions to remove the lock(s) (ie: be the owner of the lock(s) or have admin rights) otherwise an exception will be raised.
If one of the child nodes is not locked then it will be ignored and the process continue without error.
If the lock on any one of the child nodes cannot be released then an exception will be raised.
unlock in interface LockServicenodeRef - a node referenceunlockChildren - if true then all the children (and grandchildren, etc)
of the node will also be unlocked, false otherwiseUnableToReleaseLockException - thrown if the lock could not be releasedorg.alfresco.service.cmr.lock.LockService#unlock(NodeRef, String,
boolean)public void unlock(java.util.Collection nodeRefs)
throws UnableToReleaseLockException
LockServiceThe user must have sufficient permissions to remove the locks (ie: be the owner of the locks or have admin rights) otherwise an exception will be raised.
If one of the nodes is not locked then it will be ignored and the process will continue without an error.
If the lock on any one of the nodes cannot be released than an exception will be raised and the process rolled back.
unlock in interface LockServicenodeRefs - the node referencesUnableToReleaseLockException - thrown if the lock could not be releasedorg.alfresco.repo.lock.LockService#unlock(Collection,
String) public LockStatus getLockStatus(org.alfresco.service.cmr.repository.NodeRef nodeRef)
LockServicegetLockStatus in interface LockServicenodeRef - the node referenceLockService.getLockStatus(NodeRef)public LockStatus getLockStatus(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.String userName)
getLockStatus in interface LockServicenodeRef - the node referenceuserName - the user nameLockService#getLockStatus(NodeRef, NodeRef)public LockType getLockType(org.alfresco.service.cmr.repository.NodeRef nodeRef)
LockServiceReturns null if the node is not locked.
Throws an exception if the node does not have the lock aspect.
getLockType in interface LockServicenodeRef - the node referenceLockService.getLockType(NodeRef)public void checkForLock(org.alfresco.service.cmr.repository.NodeRef nodeRef)
throws NodeLockedException
If the node is locked by another user then a NodeLockedException is thrown.
Gets the user reference from the current session.
checkForLock in interface LockServicenodeRef - the node referenceNodeLockedException - thrown if the node is locked by someone else. This is based on the lock status of the lock,
the user ref and the lock type.public void onCreateChildAssociation(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef,
boolean isNewNode)
onCreateChildAssociation in interface NodeServicePolicies.OnCreateChildAssociationPolicychildAssocRef - the child association that has been createdisNewNode - true if the node is new or false if the node is being linked inLockServiceImpl.checkForLock(NodeRef)public void beforeUpdateNode(org.alfresco.service.cmr.repository.NodeRef nodeRef)
beforeUpdateNode in interface NodeServicePolicies.BeforeUpdateNodePolicynodeRef - reference to the node being updatedLockServiceImpl.checkForLock(NodeRef)public void beforeDeleteNode(org.alfresco.service.cmr.repository.NodeRef nodeRef)
beforeDeleteNode in interface NodeServicePolicies.BeforeDeleteNodePolicynodeRef - the node referenceLockServiceImpl.checkForLock(NodeRef)public CopyBehaviourCallback getCopyCallback(org.alfresco.service.namespace.QName classRef, CopyDetails copyDetails)
CopyServicePolicies.OnCopyNodePolicygetCopyCallback in interface CopyServicePolicies.OnCopyNodePolicyclassRef - the type or aspect qualified namecopyDetails - the details of the impending copyLockableAspectCopyBehaviourCallbackCopyServicePoliciespublic void beforeCreateVersion(org.alfresco.service.cmr.repository.NodeRef versionableNode)
beforeCreateVersion in interface VersionServicePolicies.BeforeCreateVersionPolicyversionableNode - reference to the node about to be versionedLockServiceImpl.checkForLock(NodeRef)public void onCreateVersion(org.alfresco.service.namespace.QName classRef,
org.alfresco.service.cmr.repository.NodeRef versionableNode,
java.util.Map versionProperties,
PolicyScope nodeDetails)
Ensures that the property values of the lock aspect are not 'frozen' in the version store.
onCreateVersion in interface VersionServicePolicies.OnCreateVersionPolicyclassRef - the class referenceversionableNode - the versionable node referenceversionProperties - the version propertiesnodeDetails - the details of the node to be versionedpublic java.util.List getLocks(org.alfresco.service.cmr.repository.StoreRef storeRef)
LockServicegetLocks in interface LockServicestoreRef - the store referenceorg.alfresco.service.cmr.lock.LockService#getLocks()public java.util.List getLocks(org.alfresco.service.cmr.repository.StoreRef storeRef,
LockType lockType)
LockServicegetLocks in interface LockServicestoreRef - the store referencelockType - the lock type to filter the results byorg.alfresco.service.cmr.lock.LockService#getLocks(org.alfresco.service.cmr.lock.LockType)public void onMoveNode(org.alfresco.service.cmr.repository.ChildAssociationRef oldChildAssocRef,
org.alfresco.service.cmr.repository.ChildAssociationRef newChildAssocRef)
NodeServicePolicies.OnMoveNodePolicyonMoveNode in interface NodeServicePolicies.OnMoveNodePolicyoldChildAssocRef - the child association reference prior to the movenewChildAssocRef - the child association reference after the movepublic void suspendLocks()
LockServiceUsed for the system to be able to update locked nodes.
suspendLocks in interface LockServicepublic void enableLocks()
LockServiceenableLocks in interface LockServicepublic void setBehaviourFilter(BehaviourFilter behaviourFilter)
public BehaviourFilter getBehaviourFilter()
Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.