Package javax.jcr.lock
Interface Lock
-
public interface Lock
Represents a lock placed on an item.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.lang.String
getLockOwner()
Returns the value of thejcr:lockOwner
property.java.lang.String
getLockToken()
May return the lock token for this lock.Node
getNode()
Returns the lock holding node.long
getSecondsRemaining()
Returns the number of seconds remaining until this locks times out.boolean
isDeep()
Returnstrue
if this is a deep lock;false
otherwise.boolean
isLive()
Returns true if thisLock
object represents a lock that is currently in effect.boolean
isLockOwningSession()
Returnstrue
if the current session is the owner of this lock, either because it is session-scoped and bound to this session or open-scoped and this session currently holds the token for this lock.boolean
isSessionScoped()
Returnstrue
if this is a session-scoped lock and the scope is bound to the current session.void
refresh()
If this lock's time-to-live is governed by a timer, this method resets that timer so that the lock does not timeout and expire.
-
-
-
Method Detail
-
getLockOwner
java.lang.String getLockOwner()
Returns the value of thejcr:lockOwner
property. This is either the client supplied owner information (seeLockManager.lock(String, boolean, boolean, long, String)
), an implementation-dependent string identifying the user who either created the lock or who is bound to the session holding the lock, ornull
if none of these are available. The lock owner's identity is only provided for informational purposes. It does not govern who can perform an unlock or make changes to the locked nodes; that depends entirely upon who the token holder is.- Returns:
- a user ID.
-
isDeep
boolean isDeep()
Returnstrue
if this is a deep lock;false
otherwise.- Returns:
- a boolean
-
getNode
Node getNode()
Returns the lock holding node. Note thatN.getLock().getNode()
(whereN
is a locked node) will only returnN
ifN
is the lock holder. IfN
is in the subgraph of the lock holder,H
, then this call will returnH
.- Returns:
- an
Node
.
-
getLockToken
java.lang.String getLockToken()
May return the lock token for this lock. If this lock is open-scoped and the current session either holds the lock token for this lock, or the repository chooses to expose the lock token to the current session, then this method will return that lock token. Otherwise this method will returnnull
.- Returns:
- a
String
.
-
getSecondsRemaining
long getSecondsRemaining() throws RepositoryException
Returns the number of seconds remaining until this locks times out. If the lock has already timed out, a negative value is returned. If the number of seconds remaining is infinite or unknown,Long.MAX_VALUE
is returned.- Returns:
- the number of seconds remaining until this lock times out.
- Throws:
RepositoryException
- if an error occurs.- Since:
- JCR 2.0
-
isLive
boolean isLive() throws RepositoryException
Returns true if thisLock
object represents a lock that is currently in effect. If this lock has been unlocked either explicitly or due to an implementation-specific limitation (like a timeout) then it returnsfalse
. Note that this method is intended for those cases where one is holding aLock
Java object and wants to find out whether the lock (the JCR-level entity that is attached to the lockable node) that this object originally represented still exists. For example, a timeout or explicitunlock
will remove a lock from a node but theLock
Java object corresponding to that lock may still exist, and in that case itsisLive
method will returnfalse
.- Returns:
- a
boolean
. - Throws:
RepositoryException
- if an error occurs.
-
isSessionScoped
boolean isSessionScoped()
Returnstrue
if this is a session-scoped lock and the scope is bound to the current session. Returnsfalse
otherwise.- Returns:
- a
boolean
.
-
isLockOwningSession
boolean isLockOwningSession()
Returnstrue
if the current session is the owner of this lock, either because it is session-scoped and bound to this session or open-scoped and this session currently holds the token for this lock. Returnsfalse
otherwise.- Returns:
- a
boolean
. - Since:
- JCR 2.0
-
refresh
void refresh() throws LockException, RepositoryException
If this lock's time-to-live is governed by a timer, this method resets that timer so that the lock does not timeout and expire. If this lock's time-to-live is not governed by a timer, then this method has no effect.- Throws:
LockException
- if thisSession
does not hold the correct lock token for this lock.RepositoryException
- if another error occurs.
-
-