Interface LockManager

    • Method Detail

      • 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.