public abstract class LockedWrapper<T> extends Locked
LockedWrapper
is a wrapper class to Locked
which adds
generics support and wraps the Locked.TIMED_OUT
object into a
LockException
.Constructor and Description |
---|
LockedWrapper() |
Modifier and Type | Method and Description |
---|---|
protected abstract T |
run(Node node)
This method is executed while holding the lock.
|
T |
with(Node lockable,
boolean isDeep)
Executes
Locked.run(javax.jcr.Node) while the lock on lockable is held. |
T |
with(Node lockable,
boolean isDeep,
boolean isSessionScoped)
Executes
Locked.run(javax.jcr.Node) while the lock on lockable is held. |
T |
with(Node lockable,
boolean isDeep,
long timeout)
Executes the method
Locked.run(javax.jcr.Node) within the scope of a lock held on
lockable . |
Object |
with(Node lockable,
boolean isDeep,
long timeout,
boolean isSessionScoped)
Executes the method
Locked.run(javax.jcr.Node) within the scope of a lock held on
lockable . |
public T with(Node lockable, boolean isDeep) throws RepositoryException, InterruptedException
Locked
Locked.run(javax.jcr.Node)
while the lock on lockable
is held.
This method will block until Locked.run(javax.jcr.Node)
is executed while holding the
lock on node lockable
.with
in class Locked
lockable
- a lockable node.isDeep
- true
if lockable
will be locked
deep.Locked.run(javax.jcr.Node)
.RepositoryException
- if Locked.run(javax.jcr.Node)
throws an exception.InterruptedException
- if this thread is interrupted while waiting
for the lock on node lockable
.public T with(Node lockable, boolean isDeep, boolean isSessionScoped) throws RepositoryException, InterruptedException
Locked
Locked.run(javax.jcr.Node)
while the lock on lockable
is held.
This method will block until Locked.run(javax.jcr.Node)
is executed while holding the
lock on node lockable
.with
in class Locked
lockable
- a lockable node.isDeep
- true
if lockable
will be locked
deep.isSessionScoped
- true
if the lock is session scoped.Locked.run(javax.jcr.Node)
.RepositoryException
- if Locked.run(javax.jcr.Node)
throws an exception.InterruptedException
- if this thread is interrupted while waiting
for the lock on node lockable
.public T with(Node lockable, boolean isDeep, long timeout) throws UnsupportedRepositoryOperationException, RepositoryException, InterruptedException
Locked
Locked.run(javax.jcr.Node)
within the scope of a lock held on
lockable
.with
in class Locked
lockable
- the node where the lock is obtained from.isDeep
- true
if lockable
will be locked
deep.timeout
- time in milliseconds to wait at most to acquire the lock.Locked.run(javax.jcr.Node)
or Locked.TIMED_OUT
if the
lock on lockable
could not be acquired within the
specified timeout.UnsupportedRepositoryOperationException
- if this repository does not support
locking.RepositoryException
- if Locked.run(javax.jcr.Node)
throws an exception.InterruptedException
- if this thread is interrupted while
waiting for the lock on node
lockable
.public Object with(Node lockable, boolean isDeep, long timeout, boolean isSessionScoped) throws UnsupportedRepositoryOperationException, RepositoryException, InterruptedException
Locked
Locked.run(javax.jcr.Node)
within the scope of a lock held on
lockable
.with
in class Locked
lockable
- the node where the lock is obtained from.isDeep
- true
if lockable
will be locked
deep.timeout
- time in milliseconds to wait at most to acquire the lock.isSessionScoped
- true
if the lock is session scoped.Locked.run(javax.jcr.Node)
or Locked.TIMED_OUT
if the
lock on lockable
could not be acquired within the
specified timeout.UnsupportedRepositoryOperationException
- if this repository does not support
locking.RepositoryException
- if Locked.run(javax.jcr.Node)
throws an exception.InterruptedException
- if this thread is interrupted while
waiting for the lock on node
lockable
.protected abstract T run(Node node) throws RepositoryException
run
in class Locked
node
- The Node
on which the lock is placed.with()
.RepositoryException
- if an error occurs.Copyright © 2004–2022 The Apache Software Foundation. All rights reserved.