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());
}
}