クラス State

実装されたすべてのインターフェース:
AnnotatedStateDefinition
既知の直属サブクラス
EndStateTransitionableState

public abstract class State extends AnnotatedObject implements StateDefinition
フロー内で何かが発生するポイント。何が発生するかは状態の型によって決まります。標準的な状態の型には、アクション状態、ビュー状態、サブフロー状態、終了状態などがあります。

各状態は、正確に 1 つの所有フロー定義に関連付けられます。このクラスの特殊化により、特定の種類の状態に必要なすべての構成情報が取得されます。

サブクラスは、構成情報に基づいて、この状態に入ったときに発生する処理を実行するために、doEnter メソッドを実装する必要があります。さまざまな動作を実行するカスタム状態型をプラグインする機能は、典型的な GoF 状態パターンです。

等価: 2 つの状態は同じ ID を持ち、同じフローの一部である場合に等しくなります。

作成者:
Keith Donald, Erwin Vervaet
関連事項:
  • フィールドの詳細

    • logger

      protected final org.apache.commons.logging.Log logger
      サブクラスで使用するためのロガー。
  • コンストラクターの詳細

    • State

      protected State(Flow flow, StringSE id) throws IllegalArgumentExceptionSE
      提供された id によって識別される、提供された flow の状態を作成します。ID は、所有フローに対してローカルに一意である必要があります。状態はフローに自動的に追加されます。
      パラメーター:
      flow - 所有の流れ
      id - 状態識別子 (フローごとに一意である必要があります)
      例外:
      IllegalArgumentExceptionSE - この状態をフローに追加できない場合、たとえば、指定された ID が所有フロー内で一意でない場合など
      関連事項:
  • メソッドの詳細

    • getOwner

      public FlowDefinition getOwner()
      インターフェースからコピーされた説明: StateDefinition
      この状態が属するフロー定義を返します。
      次で指定:
      インターフェース StateDefinitiongetOwner 
      戻り値:
      所有フローの定義
    • getId

      public StringSE getId()
      インターフェースからコピーされた説明: StateDefinition
      フロー定義を含むローカルに一意のこの状態の識別子を返します。
      次で指定:
      インターフェース StateDefinitiongetId 
      戻り値:
      状態識別子
    • isViewState

      public boolean isViewState()
      インターフェースからコピーされた説明: StateDefinition
      この状態がビュー状態である場合は true を返します。
      次で指定:
      インターフェース StateDefinitionisViewState 
      戻り値:
      ビュー状態の場合は true、それ以外の場合は false
    • getFlow

      public Flow getFlow()
      所有フローを返します。
    • getEntryActionList

      public ActionList getEntryActionList()
      この状態に入ったときに実行されるアクションのリストを返します。返されるリストは変更可能です。
      戻り値:
      状態入国アクションリスト
    • getExceptionHandlerSet

      public FlowExecutionExceptionHandlerSet getExceptionHandlerSet()
      変更可能な例外ハンドラーのセットを返します。これにより、この状態内でスローされたときに例外がどのように処理されるかを操作できます。

      この状態に入ったときに例外が発生すると例外ハンドラーが呼び出され、カスタム例外処理ロジックを実行したり、表示するエラービューを選択したりできます。

      戻り値:
      状態例外ハンドラーセット
    • isStartState

      public boolean isStartState()
      この状態が所有フローの開始状態であるかどうかを示すフラグを返します。
      戻り値:
      フローが開始状態の場合は true、それ以外の場合は false
    • equals

      public boolean equals(ObjectSE o)
      オーバーライド:
      クラス ObjectSEequalsSE 
    • hashCode

      public int hashCode()
      オーバーライド:
      クラス ObjectSEhashCode 
    • enter

      public final void enter(RequestControlContext context) throws FlowExecutionException
      提供されたフロー制御コンテキストでこの状態に入ります。この実装では、エントリアクションを実行した後、サブクラスで実装する必要がある doEnter(RequestControlContext) フックメソッドを呼び出すだけです。
      パラメーター:
      context - 現在実行中のフローの制御コンテキスト。この状態によってフロー実行を操作するために使用されます
      例外:
      FlowExecutionException - この状態で例外が発生した場合
    • doPreEntryActions

      protected void doPreEntryActions(RequestControlContext context) throws FlowExecutionException
      状態に入るときに状態に入るアクションを実行する前に実行するフックメソッド。デフォルトでは何もしません。サブクラスでオーバーライドできます。
      パラメーター:
      context - リクエスト制御コンテキスト
      例外:
      FlowExecutionException - 例外が発生した場合
    • doEnter

      protected abstract void doEnter(RequestControlContext context) throws FlowExecutionException
      この状態に入った結果としてカスタム動作を実行するためのフックメソッド。このメソッドを実装することにより、サブクラスは状態の動作を特化します。
      パラメーター:
      context - 現在実行中のフローの制御コンテキスト。この状態によってフロー実行を操作するために使用されます
      例外:
      FlowExecutionException - この状態で例外が発生した場合
    • handleException

      public boolean handleException(FlowExecutionException exception, RequestControlContext context)
      現在のフロー実行リクエストのコンテキスト中にこの状態で発生した例外を処理します。
      パラメーター:
      exception - 発生した例外
      context - フロー実行制御コンテキスト
    • toString

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

      protected void appendToString(org.springframework.core.style.ToStringCreator creator)
      サブクラスはこのフックメソッドをオーバーライドして、内部状態を文字列に出力できます。このデフォルトの実装では何も行われません。
      パラメーター:
      creator - toString クリエーターは、プロパティを文字列に出力します
      関連事項: