@Target(value=METHOD) @Retention(value=RUNTIME) @Documented public @interface Branch
この演算子は、入力をデータの内容を元に分類し、それぞれの出力に振り分ける。
一つの引数を取り、分岐先を表現する列挙定数を返す。
引数には同メソッドで宣言した型変数を利用できるが、 戻り値の型に型変数を含めることはできない。
この注釈を付与するメソッドは、一般的な演算子メソッドの要件の他に、 下記の要件をすべて満たす必要がある。
public
として宣言されている abstract
以下は演算子クラスの例である。
public abstract class <Operator-Class> {
...
/**
* Returns the record status.
* @param hoge the target record
* @return the branch target status
*/
@Branch
public Status select(Hoge hoge) {
int price = hoge.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,
}
...
}
Copyright © 2011–2019 Asakusa Framework Team. All rights reserved.