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>
ALockCountManagercounting session tokens with an equality based on the UUID returned by aFunctionprovided by subclasses.
-
-
Constructor Summary
Constructors Constructor Description AbstractLockCount(Function<SessionToken,UUID> idFunction)Creates a newLockCountManagerfor session tokens with an equality based on the session IDs provided by the designated function.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intdecreaseAndGetLockCount(SessionToken session)Decreases the number of times the designated object holds the lock.StringgetLockOwner()Returns a string representation of one object that currently has a lock.booleanhasLock(SessionToken session)Returns whether the designated object has a lock at least once.booleanhasLocks()Returns whether this lock count manager knows at least one object that has a lock.intincreaseAndGetLockCount(SessionToken session)Increases the number of times the designated object holds the lock.
-
-
-
Constructor Detail
-
AbstractLockCount
public AbstractLockCount(Function<SessionToken,UUID> idFunction)
Creates a newLockCountManagerfor 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 Detail
-
hasLock
public boolean hasLock(SessionToken session)
Description copied from interface:LockCountManagerReturns whether the designated object has a lock at least once.- Specified by:
hasLockin interfaceLockCountManager<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:LockCountManagerReturns whether this lock count manager knows at least one object that has a lock.- Specified by:
hasLocksin interfaceLockCountManager<SessionToken>- Returns:
- Whether at least one object has a lock.
-
getLockOwner
public String getLockOwner()
Description copied from interface:LockCountManagerReturns 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:
getLockOwnerin interfaceLockCountManager<SessionToken>- Returns:
- A string representation of one object that currently has a lock.
-
increaseAndGetLockCount
public int increaseAndGetLockCount(SessionToken session)
Description copied from interface:LockCountManagerIncreases the number of times the designated object holds the lock.- Specified by:
increaseAndGetLockCountin interfaceLockCountManager<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:LockCountManagerDecreases 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:
decreaseAndGetLockCountin interfaceLockCountManager<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.
-
-