Class ExecutionContext

java.lang.Object
com.streamconverter.context.ExecutionContext

public class ExecutionContext extends Object
実行コンテキストを管理するクラス

StreamConverterの実行全体を通じて一意の識別子とコンテキスト情報を提供し、 マルチスレッド環境でのMDC伝播を支援します。

  • Field Details

  • Method Details

    • create

      public static ExecutionContext create()
      新しい実行コンテキストを生成
      Returns:
      新しいExecutionContextインスタンス
    • builder

      カスタム設定でExecutionContextを作成するためのビルダーを取得
      Returns:
      Builderインスタンス
    • getExecutionId

      実行ID(一意識別子)を取得
      Returns:
      実行ID
    • getStartTime

      実行開始時刻を取得
      Returns:
      開始時刻
    • getNextCommandSequence

      public int getNextCommandSequence()
      次のコマンドシーケンス番号を取得(自動インクリメント)
      Returns:
      シーケンス番号
    • getCurrentCommandSequence

      現在のコマンドシーケンス番号を取得
      Returns:
      現在のシーケンス番号
    • getGlobalContext

      グローバルコンテキスト値を取得
      Parameters:
      key - キー
      Returns:
      値(存在しない場合はnull)
    • getAllGlobalContext

      全てのグローバルコンテキストを取得
      Returns:
      読み取り専用のコンテキストマップ
    • getUserContext

      ユーザーコンテキスト値を取得
      Parameters:
      key - キー
      Returns:
      値(存在しない場合はnull)
    • setUserContext

      public void setUserContext(String key, String value)
      ユーザーコンテキスト値を設定
      Parameters:
      key - キー
      value - 値
    • getAllUserContext

      全てのユーザーコンテキストを取得
      Returns:
      ユーザーコンテキストマップ
    • getSharedContext

      共有コンテキスト値を取得

      共有コンテキストはスレッド間で共有されるコンテキスト情報です。 ConcurrentHashMapで実装されているため、スレッドセーフです。

      Parameters:
      key - キー
      Returns:
      値(存在しない場合はnull)
    • setSharedContext

      public void setSharedContext(String key, String value)
      共有コンテキスト値を設定

      共有コンテキストはスレッド間で共有されるコンテキスト情報です。 実行中のスレッドからいつでも設定・取得が可能で、他のスレッドから即座にアクセスできます。

      Parameters:
      key - キー
      value - 値(nullの場合は削除)
    • getAllSharedContext

      全ての共有コンテキストを取得
      Returns:
      共有コンテキストマップのコピー
    • applyToMDC

      public void applyToMDC()
      現在のコンテキストをMDCに設定

      このメソッドを呼び出すことで、実行コンテキストの情報が 現在のスレッドのMDCに設定されます。 共有コンテキストも含めて全てのコンテキスト情報がMDCに反映されます。

      共有コンテキストはDirty Flag最適化により、変更があった場合のみMDCに同期されます。 これにより、頻繁なapplyToMDC()呼び出しでもパフォーマンスが維持されます。

    • applyToMDCWithStage

      public void applyToMDCWithStage(String stageName)
      特定のステージでのMDC設定
      Parameters:
      stageName - ステージ名
    • copy

      コンテキストのコピーを作成 ユーザーコンテキストは複製されますが、グローバルコンテキストは共有されます。 コピー時はコマンドシーケンスは0にリセットされます。
      Returns:
      コンテキストのコピー
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object