|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.jackrabbit.core.lock.LockManagerImpl
Provides the functionality needed for locking and unlocking nodes.
Constructor Summary | |
LockManagerImpl(SessionImpl session,
FileSystem fs)
Create a new instance of this class. |
Method Summary | |
void |
beginUpdate()
Start an update operation. |
void |
cancelUpdate()
Cancel an update operation. |
void |
checkLock(NodeImpl node)
Check whether the node given is locked by somebody else than the current session. Access is allowed if the node is not locked or if the session itself holds the lock to this node, i.e. the session contains the lock token for the lock. |
void |
checkLock(Path path,
Session session)
Check whether the path given is locked by somebody else than the session described. Access is allowed if the node is not locked or if the session itself holds the lock to this node, i.e. the session contains the lock token for the lock. |
void |
close()
Close this lock manager. |
void |
endUpdate()
End an update operation. |
Lock |
getLock(NodeImpl node)
Returns the Lock object that applies to a node. This may be either a lock on this node itself or a deep lock on a node above this node. |
org.apache.jackrabbit.core.lock.AbstractLockInfo |
getLockInfo(NodeId id)
Return the most appropriate lock information for a node. |
boolean |
holdsLock(NodeImpl node)
Returns true if the node given holds a lock;
otherwise returns false |
boolean |
isLocked(NodeImpl node)
Returns true if this node is locked either as a result
of a lock held by this node or by a deep lock on a node above this
node; otherwise returns false |
Lock |
lock(NodeImpl node,
boolean isDeep,
boolean isSessionScoped)
Lock a node. Checks whether the node is not locked and then returns a lock object for this node. |
void |
lockTokenAdded(SessionImpl session,
String lt)
Invoked by a session to inform that a lock token has been added. |
void |
lockTokenRemoved(SessionImpl session,
String lt)
Invoked by a session to inform that a lock token has been removed. |
void |
onEvent(EventIterator events)
|
void |
unlock(NodeImpl node)
Removes the lock on a node given by its path. In order to prevent deadlocks from within the synchronous dispatching of events, content modifications should not be made from within code sections that hold monitors. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public LockManagerImpl(SessionImpl session, FileSystem fs) throws RepositoryException
session
- system sessionfs
- file system for persisting locks
RepositoryException
- if an error occursMethod Detail |
public void close()
public org.apache.jackrabbit.core.lock.AbstractLockInfo getLockInfo(NodeId id) throws RepositoryException
null
if node is not locked
RepositoryException
- if an error occurspublic Lock lock(NodeImpl node, boolean isDeep, boolean isSessionScoped) throws LockException, RepositoryException
lock
in interface LockManager
node
- nodeisDeep
- whether the lock applies to this node onlyisSessionScoped
- whether the lock is session scoped
LockException
- if this node already is locked, or some descendant
node is locked and isDeep
is true
RepositoryException
Node.lock(boolean, boolean)
public Lock getLock(NodeImpl node) throws LockException, RepositoryException
getLock
in interface LockManager
node
- node
LockException
- if this node is not locked
RepositoryException
Node.getLock()
public void unlock(NodeImpl node) throws LockException, RepositoryException
unlock
in interface LockManager
node
- node
LockException
- if this node is not locked or the session
does not have the correct lock token
RepositoryException
Node.unlock()
public boolean holdsLock(NodeImpl node) throws RepositoryException
true
if the node given holds a lock;
otherwise returns false
holdsLock
in interface LockManager
node
- node
true
if the node given holds a lock;
otherwise returns false
RepositoryException
Node.holdsLock()
public boolean isLocked(NodeImpl node) throws RepositoryException
true
if this node is locked either as a result
of a lock held by this node or by a deep lock on a node above this
node; otherwise returns false
isLocked
in interface LockManager
node
- node
true
if this node is locked either as a result
of a lock held by this node or by a deep lock on a node above this
node; otherwise returns false
RepositoryException
Node.isLocked()
public void checkLock(NodeImpl node) throws LockException, RepositoryException
checkLock
in interface LockManager
node
- node to check
LockException
- if write access to the specified node is not allowed
RepositoryException
- if some other error occurspublic void checkLock(Path path, Session session) throws LockException, RepositoryException
checkLock
in interface LockManager
path
- path to checksession
- session
RepositoryException
- if some other error occurs
LockException
- if write access to the specified path is not allowedpublic void lockTokenAdded(SessionImpl session, String lt)
lockTokenAdded
in interface LockManager
session
- session that has a added lock tokenlt
- added lock tokenpublic void lockTokenRemoved(SessionImpl session, String lt)
lockTokenRemoved
in interface LockManager
session
- session that has a removed lock tokenlt
- removed lock tokenpublic void beginUpdate()
public void endUpdate()
public void cancelUpdate()
public void onEvent(EventIterator events)
onEvent
in interface EventListener
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |