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
    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.
    Returns the current state of the stateful component.
    reactor.core.publisher.Flux<S>
    Returns a stream of states for this component as they change.
    void
    transition(S newState)
    Transition into a new state, notifying consumers.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • fromInitial

      public static <S> SingleStateful<S> fromInitial(S initialState)
      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

      public S state()
      Description copied from interface: Stateful
      Returns the current state of the stateful component.
      Specified by:
      state in interface Stateful<S>
    • states

      public reactor.core.publisher.Flux<S> states()
      Description copied from interface: Stateful
      Returns a stream of states for this component as they change.
      Specified by:
      states in interface Stateful<S>
    • transition

      public void transition(S newState)
      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

      public boolean compareAndTransition(S expectedState, S newState)
      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.