# Class LockingVisitors.StampedLockVisitor<O>

java.lang.Object
org.apache.commons.lang3.concurrent.locks.LockingVisitors.LockVisitor<O, StampedLock>
org.apache.commons.lang3.concurrent.locks.LockingVisitors.StampedLockVisitor<O>

Type Parameters:
  `O` - The type of the object to protect.

Enclosing class:
  `LockingVisitors`

public static class LockingVisitors.StampedLockVisitor<O> extends LockingVisitors.LockVisitor<O, StampedLock>
Wraps a `StampedLock` and object to protect. To access the object, use the methods `LockingVisitors.LockVisitor.acceptReadLocked(FailableConsumer)`, `LockingVisitors.LockVisitor.acceptWriteLocked(FailableConsumer)`, `LockingVisitors.LockVisitor.applyReadLocked(FailableFunction)`, and `LockingVisitors.LockVisitor.applyWriteLocked(FailableFunction)`. The visitor holds the lock while the consumer or function is called.

Since:
  3.11
See Also:
  - `LockingVisitors.stampedLockVisitor(Object)`

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `LockingVisitors.StampedLockVisitor.Builder<O>`
  Builds `LockingVisitors.LockVisitor` instances.

  ### Nested classes/interfaces inherited from class LockingVisitors.LockVisitor

  `LockingVisitors.LockVisitor.LVBuilder<O,L,B>`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `StampedLockVisitor(O object, StampedLock stampedLock)`
  Creates a new instance with the given object and lock.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static <O> LockingVisitors.StampedLockVisitor.Builder<O>`
  `builder()`
  Creates a new builder.

  ### Methods inherited from class LockingVisitors.LockVisitor

  `acceptReadLocked, acceptWriteLocked, applyReadLocked, applyWriteLocked, getLock, getObject, lockAcceptUnlock, lockApplyUnlock`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### StampedLockVisitor

    protected StampedLockVisitor(O object, StampedLock stampedLock)
    Creates a new instance with the given object and lock.
    Parameters:
      `object` - The object to protect. The caller is supposed to drop all references to the locked object.
      `stampedLock` - the lock to use.
    See Also:
      - `LockingVisitors`

- ## Method Details

  - ### builder

    public static <O> LockingVisitors.StampedLockVisitor.Builder<O> builder()
    Creates a new builder.
    Type Parameters:
      `O` - the wrapped object type.
    Returns:
      a new builder.
    Since:
      3.18.0