インターフェース Conversation

すべての既知の実装クラス:
ContainedConversation

public interface Conversation
単一のリクエストの範囲内で「会話」と呼ばれる単一の論理ユーザーインタラクションに関連付けられた状態を操作するためのサービスインターフェース。会話オブジェクトはスレッドセーフではないため、複数のスレッド間で共有しないでください。

会話は、開始されて最終的に終了する「タスク」コンテキストを提供します。開始と終了の間で、会話のコンテキストに属性を配置したり、会話のコンテキストから属性を読み取ったりすることができます。

会話を操作する前に、会話を locked にして排他的アクセスを取得する必要があります。操作が完了したら、会話を unlock する必要があります。そのため、会話と対話するコードは常に次のようになります。

 Conversation conv = ...;
 conv.lock();
 try {
    // work with the Conversation object, calling methods like
    // getAttribute(), putAttribute() and end()
 }
 finally {
    conv.unlock();
 }
 

会話に関連付けられた属性は、フロー実行に対して定義された「会話スコープ」ではないことに注意してください。会話に関連付けられた任意の属性(技術的な性質を持つものも含む)を指定できます。

作成者:
Keith Donald, Erwin Vervaet
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    end()
    この会話を終了します。
    指定された名前の会話属性を返します。
    この会話に割り当てられた一意の ID を返します。
    void
    この会話をロックします。
    void
    このコンテキストに会話属性を配置します。
    void
    会話属性を削除します。
    void
    この会話のロックを解除して、他のユーザーが操作できるようにします。
  • メソッドの詳細

    • getId

      この会話に割り当てられた一意の ID を返します。この ID は会話の存続期間中は同じままです。このメソッドは、この会話のロックを所有しなくても安全に呼び出すことができます。
      戻り値:
      会話 ID
    • lock

      void lock() throws ConversationLockException
      この会話をロックします。他の誰かがロックを取得した場合、ロックが使用可能になるまでブロックされる可能性があります。
      例外:
      ConversationLockException - ロックを取得できなかった場合
    • getAttribute

      ObjectSE getAttribute(ObjectSE name)
      指定された名前の会話属性を返します。このメソッドを呼び出す前に、この会話のロックを取得する必要があります。
      パラメーター:
      name - 属性名
      戻り値:
      属性値
    • putAttribute

      void putAttribute(ObjectSE name, ObjectSE value)
      このコンテキストに会話属性を設定します。このメソッドを呼び出す前に、この会話のロックを取得する必要があります。
      パラメーター:
      name - 属性名
      value - 属性値
    • removeAttribute

      void removeAttribute(ObjectSE name)
      会話属性を削除します。このメソッドを呼び出す前に、この会話のロックを取得する必要があります。
      パラメーター:
      name - 属性名
    • end

      void end()
      この会話を終了します。このメソッドは、会話を終了し、割り当てられたリソースをクリーンアップするために 1 回だけ呼び出す必要があります。このメソッドを呼び出す前に、この会話のロックを取得する必要があります。
    • unlock

      void unlock()
      この会話のロックを解除して、他のユーザーが操作できるようにします。