@Target(value=METHOD) @Retention(value=RUNTIME) @Documented public @interface GroupSort
この演算子は、単一の入力をグループ化し、グループ内で整列したリストとして処理した結果を出力する。
一つのモデルオブジェクトを要素に取るリスト型
の引数と、
複数の結果オブジェクト型
の引数を取り、
リストの任意の要素について加工を行った後に、
結果オブジェクトに出力を行うプログラムを記述する。
また、リスト型の引数にはKey
注釈を指定し、
グループ化
のためのプロパティ名と
整列
のためのプロパティ名および整列方向を指定する必要がある。
また、引数には同メソッドで宣言した型変数を利用できるが、 全ての結果オブジェクト型の出力に型変数を含める場合には、 いずれかの入力に同様の型変数を指定してある必要がある。
この注釈を付与するメソッドは、一般的な演算子メソッドの要件の他に、 下記の要件をすべて満たす必要がある。
void
を指定する abstract
例:
/**
* レコードHogeを名前ごとに年齢の若い順に並べ、先頭と末尾だけをそれぞれ結果に流す。
* @param hogeList グループごとのリスト
* @param first グループごとの先頭要素
* @param last グループごとの末尾要素
*/
@GroupSort
public void firstLast(
@Key(group = "name", order = "age ASC") List<Hoge> hogeList,
Result<Hoge> first,
Result<Hoge> last) {
first.add(hogeList.get(0));
last.add(hogeList.get(hogeList.size() - 1));
}
Modifier and Type | Optional Element and Description |
---|---|
InputBuffer |
inputBuffer
演算子の入力バッファの性質を指定する。
|
public abstract InputBuffer inputBuffer
デフォルトではヒープ上に高速な入力バッファを構築し、巨大なグループに対しての処理は行えない。
InputBuffer
Copyright © 2011–2019 Asakusa Framework Team. All rights reserved.