Class SessionLock.AbstractLockCount

java.lang.Object
de.aristaflow.adept2.base.sessionmanagement.SessionLock.AbstractLockCount
All Implemented Interfaces:
LockCountManager<SessionToken>
Direct Known Subclasses:
SessionLock.ChildSessionIDLockCount, SessionLock.SessionIdLockCount
Enclosing class:
SessionLock

public static class SessionLock.AbstractLockCount extends Object implements LockCountManager<SessionToken>
A LockCountManager counting session tokens with an equality based on the UUID returned by a Function provided by subclasses.
  • Constructor Details

    • AbstractLockCount

      public AbstractLockCount(Function<SessionToken,UUID> idFunction)
      Creates a new LockCountManager for session tokens with an equality based on the session IDs provided by the designated function.
      Parameters:
      idFunction - The function returning a UUID for a session token.
  • Method Details

    • hasLock

      public boolean hasLock(SessionToken session)
      Description copied from interface: LockCountManager
      Returns whether the designated object has a lock at least once.
      Specified by:
      hasLock in interface LockCountManager<SessionToken>
      Parameters:
      session - The object which is checked whether it holds a lock.
      Returns:
      Whether the designated object has a lock at least once.
    • hasLocks

      public boolean hasLocks()
      Description copied from interface: LockCountManager
      Returns whether this lock count manager knows at least one object that has a lock.
      Specified by:
      hasLocks in interface LockCountManager<SessionToken>
      Returns:
      Whether at least one object has a lock.
    • getLockOwner

      public String getLockOwner()
      Description copied from interface: LockCountManager
      Returns a string representation of one object that currently has a lock. This can be used for user information or tracking purpose. A locking object may not be returned since this would allow to unlock.
      Specified by:
      getLockOwner in interface LockCountManager<SessionToken>
      Returns:
      A string representation of one object that currently has a lock.
    • increaseAndGetLockCount

      public int increaseAndGetLockCount(SessionToken session)
      Description copied from interface: LockCountManager
      Increases the number of times the designated object holds the lock.
      Specified by:
      increaseAndGetLockCount in interface LockCountManager<SessionToken>
      Parameters:
      session - The object which has acquired the lock (once again).
      Returns:
      The number of times the designated object has the lock after the increment.
    • decreaseAndGetLockCount

      public int decreaseAndGetLockCount(SessionToken session)
      Description copied from interface: LockCountManager
      Decreases the number of times the designated object holds the lock. If the object does not hold the lock, the decrement will be ignored.
      Specified by:
      decreaseAndGetLockCount in interface LockCountManager<SessionToken>
      Parameters:
      session - The object which has released the lock (once again).
      Returns:
      The number of times the designated object has the lock after the decrement.