Class StateHolder<E>

java.lang.Object
org.glassfish.grizzly.utils.StateHolder<E>

public final class StateHolder<E> extends Object
Class, which holds the state. Provides API for state change notification, state read/write access locking.
Author:
Alexey Stashok
  • Constructor Details

    • StateHolder

      public StateHolder()
      Constructs StateHolder.
    • StateHolder

      public StateHolder(E initialState)
      Constructs StateHolder.
  • Method Details

    • getState

      public E getState()
      Gets current state Current StateHolder locking mode will be used
      Returns:
      state
    • setState

      public void setState(E state)
      Sets current state Current StateHolder locking mode will be used
      Parameters:
      state -
    • getStateLocker

      public ReentrantReadWriteLock getStateLocker()
      Gets Read/Write locker, which is used by this StateHolder
      Returns:
      locker
    • notifyWhenStateIsEqual

      public Future<E> notifyWhenStateIsEqual(E state, CompletionHandler<E> completionHandler)
      Register listener, which will be notified, when state will be equal to passed one. Once listener will be notified - it will be removed from this StateHolder's listener set.
      Parameters:
      state - State, listener is interested in
      completionHandler - that will be notified. This StateHolder implementation works with Runnable, Callable, CountDownLatch, Object listeners
      Returns:
      ConditionListener, if current state is not equal to required and listener was registered, null if current state is equal to required. In both cases listener will be notified
    • notifyWhenStateIsNotEqual

      public Future<E> notifyWhenStateIsNotEqual(E state, CompletionHandler<E> completionHandler)
      Register listener, which will be notified, when state will become not equal to passed one. Once listener will be notified - it will be removed from this StateHolder's listener set.
      Parameters:
      state - State, listener is interested in
      completionHandler - that will be notified. This StateHolder implementation works with Runnable, Callable, CountDownLatch, Object listeners
      Returns:
      ConditionListener, if current state is equal to required and listener was registered, null if current state is not equal to required. In both cases listener will be notified
    • notifyWhenConditionMatchState

      public Future<E> notifyWhenConditionMatchState(Condition condition, CompletionHandler<E> completionHandler)
      Register listener, which will be notified, when state will match the condition. Once listener will be notified - it will be removed from this StateHolder's listener set.
      Parameters:
      condition - Condition, the listener is interested in
      completionHandler - that will be notified. This StateHolder implementation works with Runnable, Callable, CountDownLatch, Object listeners
      Returns:
      ConditionListener, if current state doesn't match the condition and listener was registered, null if current state matches the condition. In both cases listener will be notified
    • notifyConditionListeners

      protected void notifyConditionListeners()