package jp.ne.mki.wedge.rule.client.event; import java.util.Vector; import jp.ne.mki.wedge.rule.base.AbstractClient; import jp.ne.mki.wedge.run.client.data.Item; import jp.ne.mki.wedge.run.client.executer.ExecutionExecuter; /** * <h2>アイテムのAfterイベントを実行する。</h2> * <p>アイテムに設定されたAfterイベントを実行します。<br> * このロジッククラスにより実行リスト処理をブロック化するイメージで、いろいろなタイミング * にて実行することが可能になります。<br> * このロジッククラスを使用することにより、一連の処理中に 複数の 「ブロック化した実行リスト」が実行可能なため * フォーカス移動処理は含まれていません。<br> * (一連の処理にて、処理後にフォーカスを当てる処理は一番最後に行われます。これはイベント処理が * "入れ子"にならないようにしているためです。このロジッククラスにより実行された 「ブロック化した実行リスト」 * 終了時は "一連の処理の最後とは限らない" ためにわざとフォーカス移動処理は行っていません) * <br> * つまり、SetFocusロジッククラスなどのようなフォーカス移動を行う処理はブロック化した処理の * 中には含めないように注意してください。<br> * <br> * フォーカス移動を行う処理はブロック化せず、実行イベントの実行リストに記述するように * 切り分けてご使用ください。<br> * </p> * * <br/> * <h4>[I/O RECORD]</h4> * <table border="1" cellpadding="3" cellspacing="0" width="100%"> * <tr bgcolor="#EEEEFF" class="TableSubHeadingColor"> * <th style="width:50%;">InputRecord</th> * <th>OutputRecord</th> * </tr><tr bgcolor="#EEEEFF" class="TableRowColor"> * <td> * <!-- InputRecordの内容を記述 --> * * <!-- ここまで --> * </td> * <td> * <!-- OutputRecordの内容を記述 --> * Afterイベントが設定されているコンポーネント(複数指定可) * <!-- ここまで --> * </td> * </tr></table> * * <h4>[RULE PARAMETER]</h4> * <table border="1" cellpadding="3" cellspacing="0" width="100%"> * <tr> * <th style="width:100px;" class="TableSubHeadingColor">Parameter</th> * <td class="TableRowColor"> * <!-- Parameterの内容を記述 --> * <!--ここまで --> * </td> * </tr></table> * * @author mki * @version 1.0 * @see jp.ne.mki.wedge.rule.client.control.ExecuteAfterTakeOver */ public class ExecuteAfterEvent extends AbstractClient { /** * IOパラメータ取得。{@link #execute() execute} の前に実行される。 * @return int OK=処理続行、ERROR=異常終了、CANCEL=処理を中断(正常終了) */ public int getIOParameter() { return OK; } /** * 入力可に変更する処理を実行。OutputRecordに指定されているもの全てを処理する。 * @return int BusinessRuleの戻り値を参照 */ public int execute() { loopOutItem(); return OK; } public int loopOutItemSub(Item outItem,int index){ Vector afterExecutions = outItem.getAfterExecutions(); int ret = ExecutionExecuter.runExecutions(afterExecutions,getManager()); return ret; } /** * 終了処理。保持していた変数などを開放する処理を記述します。<br/> * {@link #execute() execute} の後に実行されます。<br/>正常終了・異常終了などに関わらず必ず実行されます。 */ public void exit() { } }