Overview  Package   Class  Use  Tree  Deprecated  Index  Help 
PREV CLASS   NEXT CLASS FRAMES    NO FRAMES    All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

org.alfresco.service.cmr.lock
Interface LockService

@org.alfresco.api.AlfrescoPublicApi
public interface LockService
Interface for public and internal lock operations.
Author:
Roy Wetherall

Method Summary
void
checkForLock(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.
getAdditionalInfo(NodeRef nodeRef)
          Retrieve the additional lock info associated with a node ref.
org.alfresco.repo.lock.mem.LockState
getLockState(NodeRef nodeRef)
          Retrieve the lock properties for the given NodeRef.
getLockStatus(NodeRef nodeRef)
          Gets the lock status for the node reference relative to the current user.
getLockStatus(NodeRef nodeRef, String userName)
          Gets the lock status for the node reference for the specified user.
getLockType(NodeRef nodeRef)
          Gets the lock type for the node indicated.
void
lock(Collection<NodeRef> nodeRefs, LockType lockType, int timeToExpire)
          Places a lock on all the nodes referenced in the passed list.
void
lock(NodeRef nodeRef, LockType lockType)
          Places a lock on a node.
void
lock(NodeRef nodeRef, LockType lockType, int timeToExpire)
          Places a persistent lock on a node.
void
lock(NodeRef nodeRef, LockType lockType, int timeToExpire, boolean lockChildren)
          Places a lock on a node and optionally on all its children.
void
lock(NodeRef nodeRef, LockType lockType, int timeToExpire, org.alfresco.repo.lock.mem.Lifetime lifetime)
          Places a lock on a node.
void
lock(NodeRef nodeRef, LockType lockType, int timeToExpire, org.alfresco.repo.lock.mem.Lifetime lifetime, String additionalInfo)
          Places a lock on a node.
void
setEphemeralExpiryThreshold(int threshSecs)
          Specifies the maximum expiry time for which a request for an ephemeral lock will be honoured.
void
suspendLocks()
          Allow the current transaction to update a node despite any locks that may be on it.
void
unlock(Collection<NodeRef> nodeRefs)
          Removes a lock on the nodes provided.
void
unlock(NodeRef nodeRef)
          Removes the lock on a node; if there is no lock then nothing is done.
void
unlock(NodeRef nodeRef, boolean lockChildren)
          Removes the lock on a node and optional on its children.
void
unlock(NodeRef nodeRef, boolean lockChildren, boolean allowCheckedOut)
          Removes the lock on a node and optional on its children.
Method Detail
lock
@Auditable(parameters={
  "nodeRef",
  "lockType"
})
void lock(NodeRef nodeRef,
          LockType lockType)
          throws org.alfresco.service.cmr.lock.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
lockType - the lock type
Throws:
org.alfresco.service.cmr.lock.UnableToAquireLockException
UnableToAquireLockException - thrown if the lock could not be obtained

lock
@Auditable(parameters={
  "nodeRef",
  "lockType",
  "timeToExpire"
})
void lock(NodeRef nodeRef,
          LockType lockType,
          int timeToExpire)
          throws org.alfresco.service.cmr.lock.UnableToAquireLockException
Places a persistent 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:
org.alfresco.service.cmr.lock.UnableToAquireLockException
UnableToAquireLockException - thrown if the lock could not be obtained

lock
@Auditable(parameters={
  "nodeRef",
  "lockType",
  "timeToExpire",
  "lifetime"
})
void lock(NodeRef nodeRef,
          LockType lockType,
          int timeToExpire,
          org.alfresco.repo.lock.mem.Lifetime lifetime)
          throws org.alfresco.service.cmr.lock.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.
lifetime - allows persistent or ephemeral locks to be specified.
Throws:
org.alfresco.service.cmr.lock.UnableToAquireLockException
UnableToAquireLockException - thrown if the lock could not be obtained

lock
@Auditable(parameters={
  "nodeRef",
  "lockType",
  "timeToExpire",
  "lifetime"
})
void lock(NodeRef nodeRef,
          LockType lockType,
          int timeToExpire,
          org.alfresco.repo.lock.mem.Lifetime lifetime,
          String additionalInfo)
          throws org.alfresco.service.cmr.lock.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.
lifetime - allows persistent or ephemeral locks to be specified.
additionalInfo - additional lock data stored alongside core lock data such as timeToExpire. NOTE: only valid for ephemeral locks.
Throws:
org.alfresco.service.cmr.lock.UnableToAquireLockException
UnableToAquireLockException - thrown if the lock could not be obtained

lock
@Auditable(parameters={
  "nodeRef",
  "lockType",
  "timeToExpire",
  "lockChildren"
})
void lock(NodeRef nodeRef,
          LockType lockType,
          int timeToExpire,
          boolean lockChildren)
          throws org.alfresco.service.cmr.lock.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:
org.alfresco.service.cmr.lock.UnableToAquireLockException
UnableToAquireLockException - thrown if the lock could not be obtained

lock
@Auditable(parameters={
  "nodeRefs",
  "lockType",
  "timeToExpire"
})
void lock(Collection<NodeRef> nodeRefs,
          LockType lockType,
          int timeToExpire)
          throws org.alfresco.service.cmr.lock.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:
org.alfresco.service.cmr.lock.UnableToAquireLockException
UnableToAquireLockException - thrown if the lock could not be obtained

unlock
@Auditable(parameters="nodeRef")
void unlock(NodeRef nodeRef)
     throws org.alfresco.service.cmr.lock.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) and the node must not be checked out. Otherwise an exception will be raised.

Parameters:
nodeRef - a reference to a node
Throws:
org.alfresco.service.cmr.lock.UnableToReleaseLockException
UnableToReleaseLockException - thrown if the lock could not be released

unlock
@Auditable(parameters={
  "nodeRef",
  "lockChildren"
})
void unlock(NodeRef nodeRef,
            boolean lockChildren)
     throws org.alfresco.service.cmr.lock.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) and the node(s) must not be checked out. 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:
org.alfresco.service.cmr.lock.UnableToReleaseLockException
UnableToReleaseLockException - thrown if the lock could not be released

unlock
@Auditable(parameters={
  "nodeRef",
  "lockChildren",
  "allowCheckedOut"
})
void unlock(NodeRef nodeRef,
            boolean lockChildren,
            boolean allowCheckedOut)
     throws org.alfresco.service.cmr.lock.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
allowCheckedOut - is it permissable for a node to be a checked out node?
Throws:
org.alfresco.service.cmr.lock.UnableToReleaseLockException
UnableToReleaseLockException - thrown if the lock could not be released

unlock
@Auditable(parameters="nodeRefs")
void unlock(Collection<NodeRef> nodeRefs)
     throws org.alfresco.service.cmr.lock.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
Throws:
org.alfresco.service.cmr.lock.UnableToReleaseLockException
UnableToReleaseLockException - thrown if the lock could not be released

getLockStatus
@Auditable(parameters="nodeRef")
LockStatus getLockStatus(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:
getLockStatus(NodeRef)

getLockStatus
@Auditable(parameters={
  "nodeRef",
  "userName"
})
LockStatus getLockStatus(NodeRef nodeRef,
                         String userName)
Gets the lock status for the node reference for the specified user.
Parameters:
nodeRef - the node reference
userName - the user name
Returns:
the lock status
See Also:
getLockStatus(NodeRef)

getLockType
@Auditable(parameters="nodeRef")
LockType getLockType(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(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.

suspendLocks
void suspendLocks()
Allow the current transaction to update a node despite any locks that may be on it.

Used for the system to be able to update locked nodes.


enableLocks
void enableLocks()
After calling suspendLocks turn the locks back on.

getAdditionalInfo
String getAdditionalInfo(NodeRef nodeRef)
Retrieve the additional lock info associated with a node ref.

Parameters:
nodeRef - NodeRef
Returns:
Additional info string or null

getLockState
org.alfresco.repo.lock.mem.LockState getLockState(NodeRef nodeRef)
Retrieve the lock properties for the given NodeRef.

Do NOT use the returned information to determine the actual state of a lock, use getLockStatus(NodeRef) and other LockService methods for this purpose.

The returned data is intended for information purposes only, e.g. returning the timeout in a WebDAV response.

Parameters:
nodeRef - NodeRef
Returns:
LockState

setEphemeralExpiryThreshold
void setEphemeralExpiryThreshold(int threshSecs)
Specifies the maximum expiry time for which a request for an ephemeral lock will be honoured. Requests for ephemeral locks with expiry times greater than this value will be automatically converted to a request for a persistent lock.
Parameters:
threshSecs - int

Overview  Package   Class  Use  Tree  Deprecated  Index  Help 
PREV CLASS   NEXT CLASS FRAMES    NO FRAMES    All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

Copyright © 2005–2018 Alfresco Software. All rights reserved.

Java API documentation generated with DocFlex/Javadoc 1.6.1 using JavadocPro template set.