インターフェース 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
方法の概要
修飾子と型メソッド説明voidend()この会話を終了します。getAttribute(ObjectSE name) 指定された名前の会話属性を返します。getId()この会話に割り当てられた一意の ID を返します。voidlock()この会話をロックします。voidputAttribute(ObjectSE name, ObjectSE value) このコンテキストに会話属性を配置します。voidremoveAttribute(ObjectSE name) 会話属性を削除します。voidunlock()この会話のロックを解除して、他のユーザーが操作できるようにします。
メソッドの詳細
getId
ConversationId getId()この会話に割り当てられた一意の ID を返します。この ID は会話の存続期間中は同じままです。このメソッドは、この会話のロックを所有しなくても安全に呼び出すことができます。- 戻り値:
- 会話 ID
lock
この会話をロックします。他の誰かがロックを取得した場合、ロックが使用可能になるまでブロックされる可能性があります。- 例外:
ConversationLockException- ロックを取得できなかった場合
getAttribute
指定された名前の会話属性を返します。このメソッドを呼び出す前に、この会話のロックを取得する必要があります。- パラメーター:
name- 属性名- 戻り値:
- 属性値
putAttribute
このコンテキストに会話属性を設定します。このメソッドを呼び出す前に、この会話のロックを取得する必要があります。- パラメーター:
name- 属性名value- 属性値
removeAttribute
会話属性を削除します。このメソッドを呼び出す前に、この会話のロックを取得する必要があります。- パラメーター:
name- 属性名
end
void end()この会話を終了します。このメソッドは、会話を終了し、割り当てられたリソースをクリーンアップするために 1 回だけ呼び出す必要があります。このメソッドを呼び出す前に、この会話のロックを取得する必要があります。unlock
void unlock()この会話のロックを解除して、他のユーザーが操作できるようにします。