@Target(value=METHOD) @Retention(value=RUNTIME) @Documented public @interface Extract
この演算子は、入力されたデータから任意のデータを抽出し、それぞれ出力に流す。
一つのモデルオブジェクト型の引数と、
複数の結果オブジェクト型
の引数を取り、
引数から抽出した任意のモデルオブジェクトを結果オブジェクトに出力を行うプログラムを記述する。
また、引数には同メソッドで宣言した型変数を利用できるが、 全ての結果オブジェクト型の出力に型変数を含める場合には、 入力に同様の型変数を指定してある必要がある。
この注釈を付与するメソッドは、一般的な演算子メソッドの要件の他に、 下記の要件をすべて満たす必要がある。
void
を指定する abstract
例:
// スレッド安全なので抽出結果のオブジェクトは再利用可能
private final A a = new A();
private final B b = new B();
/**
* レコードに含まれるそれぞれのフィールドを抽出し、出力する。
* @param hoge 抽出対象のデータモデル
* @param aResult aの抽出結果
* @param bResult bの抽出結果
*/
@Extract
public void extractFields(
Hoge hoge,
Result<A> aResult,
Result<B> bResult) {
a.setValue(hoge.getA());
aResult.add(a);
b.setValue(hoge.getB0());
bResult.add(b);
b.setValue(hoge.getB1());
bResult.add(b);
}
Copyright © 2011–2019 Asakusa Framework Team. All rights reserved.