org.glassfish.grizzly.utils
Class StateHolder<E>

java.lang.Object
  extended by 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

Nested Class Summary
protected static class StateHolder.ConditionElement<E>
           
 
Constructor Summary
StateHolder()
          Constructs StateHolder.
StateHolder(E initialState)
          Constructs StateHolder.
 
Method Summary
 E getState()
          Gets current state Current StateHolder locking mode will be used
 ReentrantReadWriteLock getStateLocker()
          Gets Read/Write locker, which is used by this StateHolder
protected  void notifyConditionListeners()
           
 Future<E> notifyWhenConditionMatchState(Condition condition, CompletionHandler<E> completionHandler)
          Register listener, which will be notified, when state will match the condition.
 Future<E> notifyWhenStateIsEqual(E state, CompletionHandler<E> completionHandler)
          Register listener, which will be notified, when state will be equal to passed one.
 Future<E> notifyWhenStateIsNotEqual(E state, CompletionHandler<E> completionHandler)
          Register listener, which will be notified, when state will become not equal to passed one.
 void setState(E state)
          Sets current state Current StateHolder locking mode will be used
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StateHolder

public StateHolder()
Constructs StateHolder.


StateHolder

public StateHolder(E initialState)
Constructs StateHolder.

Method Detail

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()


Copyright © 2012 Oracle Corporation. All Rights Reserved.