クラス AbstractStateMachine<S,E>

型パラメーター:
S - 状態の型
E - イベントの型
実装されたすべてのインターフェース:
org.springframework.beans.factory.Awareorg.springframework.beans.factory.BeanFactoryAwareorg.springframework.beans.factory.BeanNameAwareorg.springframework.beans.factory.DisposableBeanorg.springframework.beans.factory.InitializingBeanorg.springframework.context.Lifecycleorg.springframework.context.Phasedorg.springframework.context.SmartLifecycleReactiveStateMachineAccess<S,E>StateMachineAccess<S,E>Region<S,E>StateMachine<S,E>StateMachineReactiveLifecycle
既知の直属サブクラス
ObjectStateMachine

public abstract class AbstractStateMachine<S,E> extends StateMachineObjectSupport<S,E> implements StateMachine<S,E>, StateMachineAccess<S,E>
UML ステートマシンから大まかにモデル化された StateMachine の基本実装。
作成者:
Janne Valkealahti
  • コンストラクターの詳細

    • AbstractStateMachine

      public AbstractStateMachine(CollectionSE<State<S,E>> states, CollectionSE<Transition<S,E>> transitions, State<S,E> initialState)
      新しい抽象ステートマシンをインスタンス化します。
      パラメーター:
      states - このマシンの状態
      transitions - このマシンのトランジション
      initialState - このマシンの初期状態
    • AbstractStateMachine

      public AbstractStateMachine(CollectionSE<State<S,E>> states, CollectionSE<Transition<S,E>> transitions, State<S,E> initialState, ExtendedState extendedState)
      新しい抽象ステートマシンをインスタンス化します。
      パラメーター:
      states - このマシンの状態
      transitions - このマシンのトランジション
      initialState - このマシンの初期状態
      extendedState - このマシンの拡張状態
    • AbstractStateMachine

      public AbstractStateMachine(CollectionSE<State<S,E>> states, CollectionSE<Transition<S,E>> transitions, State<S,E> initialState, Transition<S,E> initialTransition, org.springframework.messaging.Message<E> initialEvent, ExtendedState extendedState, UUIDSE uuid)
      新しい抽象ステートマシンをインスタンス化します。
      パラメーター:
      states - このマシンの状態
      transitions - このマシンのトランジション
      initialState - このマシンの初期状態
      initialTransition - 最初の遷移
      initialEvent - このマシンの初期イベント
      extendedState - このマシンの拡張状態
      uuid - このマシンに指定された uuid
  • メソッドの詳細

    • getState

      public State<S,E> getState()
      インターフェースからコピーされた説明: Region
      現在の State を取得します。
      次で指定:
      インターフェース Region<S,E>getState 
      戻り値:
      現在の状態
    • getInitialState

      public State<S,E> getInitialState()
      インターフェースからコピーされた説明: StateMachine
      初期状態 S を取得します。
      次で指定:
      インターフェース StateMachine<S,E>getInitialState 
      戻り値:
      初期状態
    • getExtendedState

      public ExtendedState getExtendedState()
      インターフェースからコピーされた説明: StateMachine
      ステートマシンの拡張状態を取得します。
      次で指定:
      インターフェース StateMachine<S,E>getExtendedState 
      戻り値:
      拡張状態
    • setHistoryState

      public void setHistoryState(PseudoState<S,E> history)
      パラメーター:
      history - 内部履歴状態を設定します。
    • getHistoryState

      public PseudoState<S,E> getHistoryState()
      戻り値:
      履歴状態属性。
    • sendEvent

      public boolean sendEvent(org.springframework.messaging.Message<E> event)
      インターフェースからコピーされた説明: Region
      Message でラップされたイベント E をリージョンに送信します。

      NOTE: このメソッドは、リアクティブなメソッドを支持して非推奨になりました。

      次で指定:
      インターフェース Region<S,E>sendEvent 
      パラメーター:
      event - 送信するラップされたイベント
      戻り値:
      イベントが受け入れられた場合は true
    • notifyEventNotAccepted

      protected void notifyEventNotAccepted(StateContext<S,E> stateContext)
      オーバーライド:
      クラス StateMachineObjectSupport<S,E>notifyEventNotAccepted 
    • sendEvent

      public boolean sendEvent(E event)
      インターフェースからコピーされた説明: Region
      イベント E をリージョンに送信します。

      NOTE: このメソッドは、リアクティブなメソッドを支持して非推奨になりました。

      次で指定:
      インターフェース Region<S,E>sendEvent 
      パラメーター:
      event - 送信するイベント
      戻り値:
      イベントが受け入れられた場合は true
    • sendEvents

      public reactor.core.publisher.Flux<StateMachineEventResult<S,E>> sendEvents(reactor.core.publisher.Flux<org.springframework.messaging.Message<E>> events)
      インターフェースからコピーされた説明: Region
      イベントの Flux を送信し、StateMachineEventResult の Flux を返します。返された結果が消費された後、イベントが消費されます。
      次で指定:
      インターフェース Region<S,E>sendEvents 
      パラメーター:
      events - そのイベント
      戻り値:
      イベント結果
    • sendEvent

      public reactor.core.publisher.Flux<StateMachineEventResult<S,E>> sendEvent(reactor.core.publisher.Mono<org.springframework.messaging.Message<E>> event)
      インターフェースからコピーされた説明: Region
      イベントの Mono を送信し、StateMachineEventResult の Flux を返します。返された結果が消費された後、イベントが消費されます。
      次で指定:
      インターフェース Region<S,E>sendEvent 
      パラメーター:
      event - 行事
      戻り値:
      イベント結果
    • sendEventCollect

      public reactor.core.publisher.Mono<ListSE<StateMachineEventResult<S,E>>> sendEventCollect(reactor.core.publisher.Mono<org.springframework.messaging.Message<E>> event)
      インターフェースからコピーされた説明: Region
      イベントの Mono を送信し、収集された StateMachineEventResult の Mono をリストとして返します。返された結果が消費された後、イベントが消費されます。
      次で指定:
      インターフェース Region<S,E>sendEventCollect 
      パラメーター:
      event - 行事
      戻り値:
      イベント結果
    • onInit

      protected void onInit() throws ExceptionSE
      クラスからコピーされた説明: LifecycleObjectSupport
      サブクラスは、初期化ロジックのためにこれを実装できます。InitializingBean フェーズ中に呼び出されます。
      オーバーライド:
      クラス LifecycleObjectSupportonInit 
      例外:
      ExceptionSE - 例外
    • setBeanFactory

      public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) throws org.springframework.beans.BeansException
      次で指定:
      インターフェース org.springframework.beans.factory.BeanFactoryAwaresetBeanFactory 
      オーバーライド:
      クラス LifecycleObjectSupportsetBeanFactory 
      例外:
      org.springframework.beans.BeansException
    • doPreStartReactively

      protected reactor.core.publisher.Mono<VoidSE> doPreStartReactively()
      クラスからコピーされた説明: LifecycleObjectSupport
      サブクラスは、開始前のロジック用にこれを実装できます。
      オーバーライド:
      クラス LifecycleObjectSupportdoPreStartReactively 
      戻り値:
      mono で完成
    • doPostStartReactively

      protected reactor.core.publisher.Mono<VoidSE> doPostStartReactively()
      クラスからコピーされた説明: LifecycleObjectSupport
      サブクラスは、開始後のロジック用にこれを実装できます。
      オーバーライド:
      クラス LifecycleObjectSupportdoPostStartReactively 
      戻り値:
      mono で完成
    • doPreStopReactively

      protected reactor.core.publisher.Mono<VoidSE> doPreStopReactively()
      クラスからコピーされた説明: LifecycleObjectSupport
      サブクラスは、停止前ロジックのためにこれを実装できます。
      オーバーライド:
      クラス LifecycleObjectSupportdoPreStopReactively 
      戻り値:
      mono で完成
    • doDestroy

      protected void doDestroy()
      クラスからコピーされた説明: LifecycleObjectSupport
      サブクラスは、破棄ロジックのためにこれを実装できます。
      オーバーライド:
      クラス LifecycleObjectSupportdoDestroy 
    • setStateMachineError

      public void setStateMachineError(ExceptionSE exception)
      インターフェースからコピーされた説明: StateMachine
      ステートマシンエラーを設定します。
      次で指定:
      インターフェース StateMachine<S,E>setStateMachineError 
      パラメーター:
      exception - 新しいステートマシンエラー
    • hasStateMachineError

      public boolean hasStateMachineError()
      インターフェースからコピーされた説明: StateMachine
      ステートマシンエラーをチェックします。
      次で指定:
      インターフェース StateMachine<S,E>hasStateMachineError 
      戻り値:
      true、エラーが設定されている場合
    • addStateListener

      public void addStateListener(StateMachineListener<S,E> listener)
      インターフェースからコピーされた説明: Region
      状態リスナーを追加します。
      次で指定:
      インターフェース Region<S,E>addStateListener 
      パラメーター:
      listener - リスナー
    • removeStateListener

      public void removeStateListener(StateMachineListener<S,E> listener)
      インターフェースからコピーされた説明: Region
      状態リスナーを削除します。
      次で指定:
      インターフェース Region<S,E>removeStateListener 
      パラメーター:
      listener - リスナー
    • isComplete

      public boolean isComplete()
      インターフェースからコピーされた説明: Region
      領域が完了しているかどうかを確認します。領域が終了状態に達し、それ以上のイベント処理が発生しない場合、領域は完了したと見なされます。
      次で指定:
      インターフェース Region<S,E>isComplete 
      戻り値:
      true、完全な場合
    • getStates

      public CollectionSE<State<S,E>> getStates()
      このマシンで定義されている State を取得します。ステートマシンの状態は不変であるため、返されるコレクションは変更不可能なコピーです。
      次で指定:
      インターフェース Region<S,E>getStates 
      戻り値:
      既存の状態の不変コピー
    • getTransitions

      public CollectionSE<Transition<S,E>> getTransitions()
      インターフェースからコピーされた説明: Region
      このリージョンの Transition を取得します。
      次で指定:
      インターフェース Region<S,E>getTransitions 
      戻り値:
      トランジションの不変コピー
    • setInitialEnabled

      public void setInitialEnabled(boolean enabled)
      インターフェースからコピーされた説明: StateMachineAccess
      ステートマシンがサブステートを使用しているときに、初期ステートを有効にするかどうかを設定します。
      次で指定:
      インターフェース StateMachineAccess<S,E>setInitialEnabled 
      パラメーター:
      enabled - 新しいイニシャルが有効になりました
    • getStateMachineAccessor

      public StateMachineAccessor<S,E> getStateMachineAccessor()
      インターフェースからコピーされた説明: StateMachine
      ステートマシンアクセサーを取得します。
      次で指定:
      インターフェース StateMachine<S,E>getStateMachineAccessor 
      戻り値:
      ステートマシンアクセサー
    • setRelay

      public void setRelay(StateMachine<S,E> stateMachine)
      インターフェースからコピーされた説明: StateMachineAccess
      リレーステートマシンを設定します。
      次で指定:
      インターフェース StateMachineAccess<S,E>setRelay 
      パラメーター:
      stateMachine - ステートマシン
    • setParentMachine

      public void setParentMachine(StateMachine<S,E> parentMachine)
      インターフェースからコピーされた説明: StateMachineAccess
      親機を設定します。
      次で指定:
      インターフェース StateMachineAccess<S,E>setParentMachine 
      パラメーター:
      parentMachine - ステートマシン
    • setForwardedInitialEvent

      public void setForwardedInitialEvent(org.springframework.messaging.Message<E> message)
      インターフェースからコピーされた説明: StateMachineAccess
      初期トランジションでサブ状態に入った際に実行されるアクションのイベントとそのヘッダーを渡すために使用される初期転送イベントを設定します。
      次で指定:
      インターフェース StateMachineAccess<S,E>setForwardedInitialEvent 
      パラメーター:
      message - 転送されたメッセージ
    • setTransitionConflightPolicy

      public void setTransitionConflightPolicy(TransitionConflictPolicy transitionConflictPolicy)
      遷移競合ポリシーを設定します。
      パラメーター:
      transitionConflictPolicy - 新しい移行競合ポリシー
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString 
    • resetStateMachine

      public void resetStateMachine(StateMachineContext<S,E> stateMachineContext)
      インターフェースからコピーされた説明: StateMachineAccess
      ステートマシンをリセットします。
      次で指定:
      インターフェース StateMachineAccess<S,E>resetStateMachine 
      パラメーター:
      stateMachineContext - ステートマシンのコンテキスト
      関連事項:
    • resetStateMachineReactively

      public reactor.core.publisher.Mono<VoidSE> resetStateMachineReactively(StateMachineContext<S,E> stateMachineContext)
      インターフェースからコピーされた説明: ReactiveStateMachineAccess
      ステートマシンをリアクティブにリセットします。
      次で指定:
      インターフェース ReactiveStateMachineAccess<S,E>resetStateMachineReactively 
      パラメーター:
      stateMachineContext - ステートマシンのコンテキスト
      戻り値:
      完成用 mono
    • addStateMachineInterceptor

      public void addStateMachineInterceptor(StateMachineInterceptor<S,E> interceptor)
      インターフェースからコピーされた説明: StateMachineAccess
      ステートマシンインターセプターを追加します。
      次で指定:
      インターフェース StateMachineAccess<S,E>addStateMachineInterceptor 
      パラメーター:
      interceptor - インターセプター
    • addStateMachineMonitor

      public void addStateMachineMonitor(StateMachineMonitor<S,E> monitor)
      インターフェースからコピーされた説明: StateMachineAccess
      ステートマシンモニターを追加します。
      次で指定:
      インターフェース StateMachineAccess<S,E>addStateMachineMonitor 
      パラメーター:
      monitor - モニター
    • getUuid

      public UUIDSE getUuid()
      インターフェースからコピーされた説明: Region
      リージョンとステートマシンの一意の ID を取得します。
      次で指定:
      インターフェース Region<S,E>getUuid 
      戻り値:
      リージョンとステートマシンの一意の ID
    • getId

      public StringSE getId()
      インターフェースからコピーされた説明: Region
      リージョンとステートマシン ID を取得します。この識別子はユーザーが自由に使用できるように提供されており、マシンを構築するさまざまな方法から設定できます。
      次で指定:
      インターフェース Region<S,E>getId 
      戻り値:
      リージョンとステートマシン ID
    • setId

      public void setId(StringSE id)
      マシン ID を設定します。
      パラメーター:
      id - 新しいマシン ID
    • executeTriggerlessTransitions

      protected reactor.core.publisher.Mono<VoidSE> executeTriggerlessTransitions(StateMachine<S,E> stateMachine, StateContext<S,E> stateContext, State<S,E> state)
    • getStateMachineExecutor

      protected StateMachineExecutor<S,E> getStateMachineExecutor()