Annotation Interface CompositeCommandConfig
public @interface CompositeCommandConfig
複数のCommandを単一のCommandとみなす場合の設定です。
-
任意要素の概要
修飾子とタイプ任意要素説明複合するCommandの設定を指定します。boolean
複合Commandより例外がスローされた場合、トランザクションをロールバックするか否かの設定です。複合Commandを利用する場合の処理ルールをGroovyScriptで設定します。boolean
トランザクションが本複合Command処理用に新規作成された際、 処理中にsetRoobackOnlyされた場合、 かつ明示的に例外がスローされなかった場合、RollbackException
をスローするか否かの設定です。複合Commandを利用する場合の複合Command全体に対するトランザクションのPropagationの設定です。複合Commandのインスタンスの初期化設定です。
-
要素の詳細
-
command
CommandConfig[] command複合するCommandの設定を指定します。- 戻り値:
- デフォルト:
- {}
-
value
String value複合Commandのインスタンスの初期化設定です。
設定例cmd[0].propA = 10 cmd[1].propB = 'hoge'
とした場合、 commandで定義されるCommandのindex=0のCommandのプロパティpropAに10、 index=1のCommandのプロパティpropBにhogeといったStringをセットします。
※GroovyScriptで、cmdでCommandのインスタンス配列がバインドされています。- 戻り値:
- デフォルト:
- "##default"
-
transactionPropagation
Propagation transactionPropagation複合Commandを利用する場合の複合Command全体に対するトランザクションのPropagationの設定です。 未指定(デフォルト)の場合は、REQUIREDが指定されます。 個別のCommandに適用するPropagationは、CommandConfigに設定可能です。- 戻り値:
- デフォルト:
- REQUIRED
-
rollbackWhenException
boolean rollbackWhenException複合Commandより例外がスローされた場合、トランザクションをロールバックするか否かの設定です。 未指定(デフォルト)の場合はtrueです。- 戻り値:
- デフォルト:
- true
-
throwExceptionIfSetRollbackOnly
boolean throwExceptionIfSetRollbackOnlyトランザクションが本複合Command処理用に新規作成された際、 処理中にsetRoobackOnlyされた場合、 かつ明示的に例外がスローされなかった場合、RollbackException
をスローするか否かの設定です。 未指定(デフォルト)の場合はfalseです。- 戻り値:
- デフォルト:
- false
-
rule
String rule複合Commandを利用する場合の処理ルールをGroovyScriptで設定します。 ルールでは、複数のCommandの呼び出し順などを制御可能で、 最終的にCommandの実行結果文字列を返却するように実装します。
設定例if (cmd[0].execute(request) == "SUCCESS") { return cmd[1].execute(request); } else { return cmd[2].execute(request); }
commandで指定されたインスタンス配列がcmdの名前でバインドされています。 また、requestでRequestContextがバインドされています。
ルールが未指定の場合は、commandで指定されたCommandを順番に実行します。 Commandの実行結果は最後のCommandの実行結果が返却されます。- 戻り値:
- デフォルト:
- "##default"
-