@Target(value=METHOD) @Retention(value=RUNTIME) @Documented public @interface MasterBranch
この演算子は、トランザクションデータに対応するマスタデータを引き当て、 それらの内容に応じてトランザクションデータをそれぞれの出力に振り分ける。
対象のメソッドは結合対象の二つのモデルオブジェクト型の引数を取る。
このとき最初の引数は、マスタデータなど結合条件に対してユニークであるようなモデルオブジェクトである必要がある。
戻り値型には、分岐先を表現する列挙定数を返す。
また、モデルオブジェクト型の引数にはそれぞれKey
注釈を指定し、
グループ化
のためのプロパティ名を指定する必要がある
(整列
のためのプロパティ名および整列方向に関する動作は規定されない)。
引数には同メソッドで宣言した型変数を利用できる。
この注釈を付与するメソッドは、下記の要件を満たす必要がある。
public
として宣言されている abstract
例:
public abstract class <Operator-Class> {
...
/**
* Returns the record status.
* @param master the master data, or {@code null} if there is no suitable data for the record
* @param tx the target record
* @return the branch target status
*/
@MasterBranch
public Status branchWithJoin(
@Key(group = "id") ItemMst master,
@Key(group = "itemId") HogeTrn tx) {
if (master == null) {
return Status.ERROR;
}
int price = master.getPrice();
if (price < 0) {
return Status.ERROR;
} else if (price < 1000000) {
return Status.CHEAP;
} else {
return Status.EXPENSIVE;
}
}
/**
* Represents price status.
*/
public enum Status {
/**
* Expensive price.
*/
EXPENSIVE,
/**
* Cheap price.
*/
CHEAP,
/**
* Erroneous price.
*/
ERROR,
}
...
}
MasterJoin
,
Branch
,
MasterSelection
Modifier and Type | Fields and Description |
---|---|
static int |
ID_INPUT_MASTER
The input port number for the master data.
|
static int |
ID_INPUT_TRANSACTION
The input port number for the transaction data.
|
public static final int ID_INPUT_MASTER
public static final int ID_INPUT_TRANSACTION
public abstract String selection
MasterSelection
Copyright © 2011–2018 Asakusa Framework Team. All rights reserved.