Asakusa FrameworkのOperator DSLの値引数のメモ。
|
ユーザー演算子のメソッド(Operatorクラスのメソッド)には、値引数を渡す事が出来る。
値引数を指定する位置は、メソッドの一番末尾。
@アノテーション public 戻り型 メソッド名(入力ソース…, GroupView…, Result…, 値引数…)
値引数に使える型はintやlong等のプリミティブ型とString。
AsakusaFW 0.10.2から列挙型を使うことも出来るようになった(設定要)。
例えばUpdate演算子にStringの引数を渡す場合は以下のようにする。
public abstract class ExampleOperator { /** * メッセージを設定する * * @param errorRecord * 更新するレコード * @param message * 設定するメッセージ */ @Update public void setMessage(ErrorRecord errorRecord, String message) { errorRecord.setMessageAsString(message); } }
// FlowPart ExampleOperatorFactory operator = new ExampleOperatorFactory(); // メッセージを設定する SetMessage setMessage = operator.setMessage(errorRecord, "Hoge2エラー");
AsakusaFW 0.10.2から、値引数に列挙型が使えるようになった。
(FlowPartの引数には、以前から列挙型が使えた)
ただしデフォルトでは使用できない。使用するためにはbuild.gradleに設定する必要がある。
〜 asakusafw { 〜 javac { processorOption 'com.asakusafw.operator.ENUM_CONSTANT_PARAMETER', 'true' } }
もしくは
〜 asakusafw.javac.processorOption 'com.asakusafw.operator.ENUM_CONSTANT_PARAMETER', 'true'
public abstract class ExampleOperator { public enum MessageType { TYPE1, TYPE2, TYPE3 } @Update public void setMessage(ErrorRecord errorRecord, MessageType type) { errorRecord.setMessageTypeAsString(type.name()); } }