Package com.couchbase.client.core.util
Class SingleStateful<S>
java.lang.Object
com.couchbase.client.core.util.SingleStateful<S>
- All Implemented Interfaces:
Stateful<S>
public class SingleStateful<S> extends Object implements Stateful<S>
Represents a single stateful component.
-
Method Summary
Modifier and Type Method Description void
close()
Doesn't have to be called, added for good measure.boolean
compareAndTransition(S expectedState, S newState)
If the expected state is in place the new one is applied and consumers notified.static <S> SingleStateful<S>
fromInitial(S initialState)
Creates a new stateful component with an initial state.static <S> SingleStateful<S>
fromInitial(S initialState, BiConsumer<S,S> beforeTransitionCallback)
Creates a new stateful component with an initial state.S
state()
Returns the current state of the stateful component.Flux<S>
states()
Returns a stream of states for this component as they change.void
transition(S newState)
Transition into a new state, notifying consumers.
-
Method Details
-
fromInitial
Creates a new stateful component with an initial state.- Parameters:
initialState
- the initial state of the component.- Returns:
- an initialized stateful component with the state provided.
-
fromInitial
public static <S> SingleStateful<S> fromInitial(S initialState, BiConsumer<S,S> beforeTransitionCallback)Creates a new stateful component with an initial state.- Parameters:
initialState
- the initial state of the component.- Returns:
- an initialized stateful component with the state provided.
-
state
Description copied from interface:Stateful
Returns the current state of the stateful component. -
states
Description copied from interface:Stateful
Returns a stream of states for this component as they change. -
transition
Transition into a new state, notifying consumers.Note that if the new state is identical to the old state no transition will be performed.
- Parameters:
newState
- the new state to apply.
-
compareAndTransition
If the expected state is in place the new one is applied and consumers notified.- Parameters:
expectedState
- the old expected state.newState
- the new state to apply.- Returns:
- true if the comparison has been successful.
-
close
public void close()Doesn't have to be called, added for good measure.
-