29.4. コンテキスト境界用アノテーション
これらのアノテーションは宣言的対話の境界を設定します。 これらは Seam コンポーネントのメソッド上、 通常はアクションリスナーメソッドに付与されます。
すべての Web 要求は対話コンテキストに関連付けられています。 ほとんどの対話は要求の完了と同時に終了します。 複数の要求にわたる対話が必要であれば、
@Begin を付けたメソッドを呼び出すことで、その対話を 長期実行の対話 に「昇格」させなければなりません。
@Begin@Begin
@BeginCopy to Clipboard Copied! Toggle word wrap Toggle overflow このメソッドが例外を送出することなく null 以外の結果を返す場合、長期対話の対話が開始することを指定します。@Begin(join=true)
@Begin(join=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 長期実行の対話がすでに開始されている場合、 対話コンテキストが伝播されることを指定します。@Begin(nested=true)
@Begin(nested=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 長期実行の対話がすでに開始されている場合、 新たに ネストされた 対話コンテキストが開始することを指定します。 次の@Endが出現したときにこのネストされた対話が終了し、 外側の対話が再開します。 外側の同じ対話内でネストされた複数の対話を同時に存在させることが可能です。@Begin(pageflow="process definition name")
@Begin(pageflow="process definition name")Copy to Clipboard Copied! Toggle word wrap Toggle overflow この対話のためのページフローを定義する jBPM プロセス定義の名前を指定します。@Begin(flushMode=FlushModeType.MANUAL)
@Begin(flushMode=FlushModeType.MANUAL)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Seam 管理永続コンテキストのフラッシュモードを指定します。flushMode=FlushModeType.MANUALは アトミックな対話 の使用に対応します。 この場合、flush ()(通常、 対話終了時に呼び出される) への明示的な呼び出しが起きるまで、 すべての書き込み操作は対話コンテキスト内の待ち行列に入れられます。join− 長期実行の対話が既に始まっている場合にその動作を確定します。trueならば、 コンテキストは伝播されます。falseの場合は例外が送出されます。 デフォルトはfalseです。nested=trueが指定されている場合はこの設定は無視されます。nested− 長期実行の対話が既に開始されている場合はネストした対話が開始されることを指定します。flushMode− この対話で作成される Seam 管理の Hibernate セッションまたは JPA 永続コンテキストのフラッシュモードを設定します。pageflow−org.jboss.seam.bpm.jbpm.pageflowDefinitionsによってデプロイされる jBPM プロセス定義の名前です。
@End@End
@EndCopy to Clipboard Copied! Toggle word wrap Toggle overflow このメソッドが例外を送出することなく null 以外の結果を返す場合、長期実行の対話が終了することを指定します。beforeRedirect− デフォルトでは、 リダイレクトが発生するまでこの対話は実際には破棄されません。beforeRedirect=trueを設定することで、 現在の要求の最後に対話が破棄され、 リダイレクトは新しい一時的な対話コンテキストで処理されるよう指定します。root− デフォルトでは、 ネストした対話が終了すると対話のスタックを単純にポップして外側の対話を再開します。root=trueを設定することで、 ルートの対話が破棄され、 結果的に対話スタック全体が破棄されるよう指定します。 対話がネストしていなければ現在の対話が破棄します。
@StartTask@StartTask
@StartTaskCopy to Clipboard Copied! Toggle word wrap Toggle overflow jBPM タスクを開始します。 このメソッドが例外を送出することなく null 以外の結果を返すと長期実行の対話を開始することを指定します。 この対話は指定の要求パラメータ中で指定される jBPM タスクと関連しています。 この対話のコンテキスト内で、 タスクインスタンスのビジネスプロセスインスタンスに対して、 ビジネスプロセスコンテキストも定義されます。- jBPM
TaskInstanceはtaskInstance要求コンテキスト変数で利用可能です。 jBPMProcessInstanceはprocessInstance要求コンテキスト変数で利用可能です。 これらのオブジェクトは@Inでインジェクションが可能です。 taskIdParameter− タスク ID を保持する要求パラメータの名前です。 デフォルトは"taskId"です。これは SeamtaskListJSF コンポーネントによりデフォルトとしても使用されます。flushMode− この対話で作成される Seam 管理の Hibernate セッションまたは JPA 永続コンテキストのフラッシュモードを設定します。
@BeginTask@BeginTask
@BeginTaskCopy to Clipboard Copied! Toggle word wrap Toggle overflow 完了していない jBPM タスクの処理を再開します。 このメソッドが例外を送出せず null 以外の結果を返すと長期実行の対話が開始することを指定します。 この対話は指定の要求パラメータ中で指定される jBPM タスクと関連しています。 この対話のコンテキスト内で、 タスクインスタンスのビジネスプロセスインスタンスに対して、 ビジネスプロセスコンテキストも定義されます。- jBPM
org.jbpm.taskmgmt.exe.TaskInstanceはtaskInstanceの要求コンテキスト変数で利用可能です。 jBPMorg.jbpm.graph.exe.ProcessInstanceは、processInstanceの要求コンテキスト変数で利用可能です。 taskIdParameter− タスクの ID を保持する要求パラメータの名前です。 デフォルトは"taskId"です。 これは SeamtaskListJSF コンポーネントによりデフォルトとしても使用されます。flushMode− この対話で作成される Seam 管理の Hibernate セッションまたは JPA 永続コンテキストのフラッシュモードを設定します。
@EndTask@EndTask
@EndTaskCopy to Clipboard Copied! Toggle word wrap Toggle overflow jBPM タスクを終了します。 このメソッドが null 以外の結果を返すと長期実行の対話は終了し、 現在のタスクが完了することを指定します。 jBPM 遷移を引き起こします。 アプリケーションがtransitionと呼ばれる組み込みコンポーネントのTransition.setName()を呼んでいない限り、 引き起こされる実際の遷移はデフォルトの遷移になります。@EndTask(transition="transitionName")
@EndTask(transition="transitionName")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定された jBPM 遷移を引き起こします。transition− タスクの終了時に引き起こされる jBPM 遷移の名前です。デフォルト設定でデフォルトの遷移となっています。beforeRedirect− デフォルトでは、 リダイレクトが発生するまでこの対話は実際には破棄されません。beforeRedirect=trueを設定することで、 現在の要求の最後に対話が破棄され、 リダイレクトは新しい一時的な対話コンテキストで処理されるよう指定します。
@CreateProcess@CreateProcess(definition="process definition name")
@CreateProcess(definition="process definition name")Copy to Clipboard Copied! Toggle word wrap Toggle overflow メソッドが例外を送出せずに null 以外の結果を返すとき、 新しい jBPM プロセスインスタンスを作成します。ProcessInstanceオブジェクトはprocessInstanceというコンテキスト変数で使用できます。definition−org.jboss.seam.bpm.jbpm.processDefinitionsによってデプロイされる jBPM プロセス定義の名前です。
@ResumeProcess@ResumeProcess(processIdParameter="processId")
@ResumeProcess(processIdParameter="processId")Copy to Clipboard Copied! Toggle word wrap Toggle overflow メソッドが例外を送出せずに null 以外の結果を返すとき、 既存の jBPM プロセスインスタンスのスコープに再度入ります。ProcessInstanceオブジェクトはprocessInstanceというコンテキスト変数で使用できます。processIdParameter− プロセス ID を保持する要求パラメータの名前です。 デフォルトは"processId"です。
@Transition@Transition("cancel")@Transition("cancel")Copy to Clipboard Copied! Toggle word wrap Toggle overflow メソッドが null 以外の結果を返すときは常に現在の jBPM プロセスインスタンス内で遷移にシグナルを送るように、メソッドをマークします。