org.alfresco.service.cmr.lock
Interface LockService

All Known Implementing Classes:
LockServiceImpl

public interface LockService

Interface for public and internal lock operations.


Method Summary
 void checkForLock(org.alfresco.service.cmr.repository.NodeRef nodeRef)
          Checks to see if the current user has access to the specified 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 the node reference relative to the current user.
 LockType getLockType(org.alfresco.service.cmr.repository.NodeRef nodeRef)
          Gets the lock type for the node indicated.
 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 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 lockChildren)
          Removes the lock on a node and optional on its children.
 

Method Detail

lock

@Auditable(parameters={"nodeRef", "lockType"})
void lock(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                    LockType lockType)
          throws UnableToAquireLockException
Places a lock on a node.

The 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.

Parameters:
nodeRef - a reference to a node
userName - a reference to the user that will own the lock
lockType - the lock type
Throws:
UnableToAquireLockException - thrown if the lock could not be obtained

lock

@Auditable(parameters={"nodeRef", "lockType", "timeToExpire"})
void lock(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                    LockType lockType,
                    int timeToExpire)
          throws UnableToAquireLockException
Places a lock on a node.

The 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.

Parameters:
nodeRef - a reference to a node
lockType - the lock type
timeToExpire - the number of seconds before the locks expires.
Throws:
UnableToAquireLockException - thrown if the lock could not be obtained

lock

@Auditable(parameters={"nodeRef", "lockType", "timeToExpire", "lockChildren"})
void lock(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                    LockType lockType,
                    int timeToExpire,
                    boolean lockChildren)
          throws UnableToAquireLockException
Places a lock on a node and optionally on all its children.

The 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.

Parameters:
nodeRef - a reference to a node
lockType - the lock type
timeToExpire - 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 otherwise
Throws:
UnableToAquireLockException - thrown if the lock could not be obtained

lock

@Auditable(parameters={"nodeRefs", "lockType", "timeToExpire"})
void lock(java.util.Collection nodeRefs,
                    LockType lockType,
                    int timeToExpire)
          throws UnableToAquireLockException
Places a lock on all the nodes referenced in the passed list.

The 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.

Parameters:
nodeRefs - a list of node references
lockType - the type of lock being created
timeToExpire - the number of seconds before the locks expires.
Throws:
UnableToAquireLockException - thrown if the lock could not be obtained

unlock

@Auditable(parameters="nodeRef")
void unlock(org.alfresco.service.cmr.repository.NodeRef nodeRef)
            throws UnableToReleaseLockException
Removes the lock on a node; if there is no lock then nothing is done.

The 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.

Parameters:
nodeRef - a reference to a node
Throws:
UnableToReleaseLockException - thrown if the lock could not be released

unlock

@Auditable(parameters={"nodeRef", "lockChildren"})
void unlock(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                      boolean lockChildren)
            throws UnableToReleaseLockException
Removes the lock on a node and optional on its children.

The 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.

Parameters:
nodeRef - a node reference
lockChildren - if true then all the children (and grandchildren, etc) of the node will also be unlocked, false otherwise
Throws:
UnableToReleaseLockException - thrown if the lock could not be released

unlock

@Auditable(parameters="nodeRefs")
void unlock(java.util.Collection nodeRefs)
            throws UnableToReleaseLockException
Removes a lock on the nodes provided.

The 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.

Parameters:
nodeRefs - the node references
userName - the user reference
Throws:
UnableToReleaseLockException - thrown if the lock could not be released

getLockStatus

@Auditable(parameters="nodeRef")
LockStatus getLockStatus(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Gets the lock status for the node reference relative to the current user.

Parameters:
nodeRef - the node reference
Returns:
the lock status
See Also:
LockService#getLockStatus(NodeRef, NodeRef)

getLockStatus

@Auditable(parameters={"nodeRef", "userName"})
LockStatus getLockStatus(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                   java.lang.String userName)
Gets the lock status for the node reference relative to the current user.

Parameters:
nodeRef - the node reference
Returns:
the lock status
See Also:
LockService#getLockStatus(NodeRef, NodeRef)

getLockType

@Auditable(parameters="nodeRef")
LockType getLockType(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Gets the lock type for the node indicated.

Returns null if the node is not locked.

Throws an exception if the node does not have the lock aspect.

Parameters:
nodeRef - the node reference
Returns:
the lock type, null is returned if the object in question has no lock

checkForLock

@Auditable(parameters="nodeRef")
void checkForLock(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Checks to see if the current user has access to the specified node.

If the node is locked by another user then a NodeLockedException is thrown.

Gets the user reference from the current session.

Parameters:
nodeRef - the node reference
Throws:
NodeLockedException - 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.

getLocks

@Auditable(parameters="storeRef")
java.util.List getLocks(org.alfresco.service.cmr.repository.StoreRef storeRef)
Get all the node references that the current user has locked.

Parameters:
storeRef - the store reference
Returns:
a list of nodes that the current user has locked.

getLocks

@Auditable(parameters={"storeRef", "lockType"})
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.

Parameters:
storeRef - the store reference
lockType - the lock type to filter the results by
Returns:
a list of nodes that the current user has locked filtered by the lock type provided


Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.