@Target(value=METHOD) @Retention(value=RUNTIME) @Documented public @interface Fold
この演算子は、単一の入力を特定の項目でグループ化し、グループ内で畳みこんだ結果を出力する。
同じモデル型の二つの引数を取り、メソッドの本体で第一引数の内容を変更するプログラムを記述する。
また、第一引数にはKey
注釈を指定し、
グループ化
のためのプロパティ名を指定する必要がある
(整列
のためのプロパティ名および整列方向は無視される)。
引数には同メソッドで宣言した型変数を利用できる。
この注釈を付与するメソッドは、一般的な演算子メソッドの要件の他に、 下記の要件をすべて満たす必要がある。
void
を指定する Key
注釈でグループ化のための情報を指定する
abstract
abstract
例:
/**
* レコードHogeを畳み込む。
* @param left ここまでの畳み込みの結果
* @param right 畳み込む対象
*/
@Fold
public void fold(@Key(group = "name") Hoge left, Hoge right) {
// @Summarizeを手動で行うイメージで、leftに次々とrightを加える
left.setValue(left.getValue() + right.getValue());
}
Modifier and Type | Fields and Description |
---|---|
static int |
ID_INPUT
The input port number.
|
static int |
ID_OUTPUT
The output port number.
|
static String |
INPUT
The default input port name.
|
Modifier and Type | Optional Element and Description |
---|---|
String |
outputPort
The default output port name.
|
PartialAggregation |
partialAggregation
部分集約の設定。
|
public static final String INPUT
public abstract PartialAggregation partialAggregation
この演算子で部分集約を可能にした場合、現在はメソッド内でフレームワークAPIを利用できなくなる。
public abstract String outputPort
Copyright © 2011–2018 Asakusa Framework Team. All rights reserved.