Interface LockManager

All Known Subinterfaces:
DBSConnection, DBSRepository
All Known Implementing Classes:
DBSCachingConnection, DBSCachingRepository, DBSConnectionBase, DBSRepositoryBase, DBSTransactionState, MemConnection, MemRepository, MongoDBConnection, MongoDBRepository, VCSLockManager

public interface LockManager
Manager of locks for a repository.

The method closeLockManager() must be called when done with the lock manager.

Since:
6.0
  • Method Details

    • getLock

      Lock getLock(String id)
      Gets the lock on a document.

      If the document does not exist, null is returned.

      Parameters:
      id - the document id
      Returns:
      the existing lock, or null when there is no lock
    • setLock

      Lock setLock(String id, Lock lock)
      Sets a lock on a document.

      If the document is already locked, returns its existing lock status (there is no re-locking, removeLock(java.lang.String, java.lang.String) must be called first).

      Parameters:
      id - the document id
      lock - the lock to set
      Returns:
      null if locking succeeded, or the existing lock if locking failed
    • removeLock

      Lock removeLock(String id, String owner)
      Removes the lock from a document.

      The previous lock is returned.

      If owner is null then the lock is unconditionally removed.

      If owner is not null, it must match the existing lock owner for the lock to be removed. If it doesn't match, the returned lock will return true for Lock.getFailed().

      Parameters:
      id - the document id
      owner - the owner to check, or null for no check
      Returns:
      the previous lock (may be null), with a failed flag if locking failed
    • canLockBeRemoved

      static boolean canLockBeRemoved(String oldOwner, String owner)
      Checks if a given lock can be removed by the given owner.
      Parameters:
      oldOwner - the existing lock's owner
      owner - the owner (may be null)
      Returns:
      true if the lock can be removed
    • closeLockManager

      default void closeLockManager()
      Closes the lock manager and releases resources.
    • clearLockManagerCaches

      default void clearLockManagerCaches()
      Clears any cache held by the lock manager.