S-JIS[2018-09-26] 変更履歴

Asakusa Framework 演算子メソッドの値引数

Asakusa FrameworkOperator 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に設定する必要がある。

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

Operator DSLへ戻る / AsakusaFW目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま