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>
ALockCountManager
counting session tokens with an equality based on the UUID returned by aFunction
provided by subclasses.
-
-
Constructor Summary
Constructors Constructor Description AbstractLockCount(Function<SessionToken,UUID> idFunction)
Creates a newLockCountManager
for 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 int
decreaseAndGetLockCount(SessionToken session)
Decreases the number of times the designated object holds the lock.String
getLockOwner()
Returns a string representation of one object that currently has a lock.boolean
hasLock(SessionToken session)
Returns whether the designated object has a lock at least once.boolean
hasLocks()
Returns whether this lock count manager knows at least one object that has a lock.int
increaseAndGetLockCount(SessionToken session)
Increases the number of times the designated object holds the lock.
-
-
-
Constructor Detail
-
AbstractLockCount
public AbstractLockCount(Function<SessionToken,UUID> idFunction)
Creates a newLockCountManager
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 Detail
-
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 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:LockCountManager
Returns whether this lock count manager knows at least one object that has a lock.- Specified by:
hasLocks
in interfaceLockCountManager<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 interfaceLockCountManager<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 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: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 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.
-
-