ch.kuramo.javie.api.annotations
注釈タイプ Effect


@Target(value=TYPE)
@Retention(value=RUNTIME)
public @interface Effect

この注釈を付けたクラスは、エフェクトクラスとして認識されます。


任意要素の概要
 java.lang.String category
          エフェクトのカテゴリです。
 java.lang.String convertTo
          エフェクトIDが id() のエフェクトを、convertTo() に指定したIDのエフェクトに変換します。
 java.lang.String id
          エフェクトのIDです。
 

id

public abstract java.lang.String id
エフェクトのIDです。他のエフェクトと重複しない値を指定する必要があります。 デフォルトでは、この注釈を付けられたクラスの完全修飾クラス名がIDとなりますが、 クラス名の変更やパッケージの移動でIDが変化してしまうことを避けるために、明示的に指定することを推奨します。

戻り値:
エフェクトのID
デフォルト:
""

category

public abstract java.lang.String category

エフェクトのカテゴリです。デフォルトは「カテゴリなし」です。 ここで指定したカテゴリに従ってUI上の表示位置などが分類されます。

Effect.Categories にある定義済みのカテゴリまたは独自のカテゴリを指定することができます。 独自のカテゴリを指定するには、ch.kuramo.javie.api.effectCategory 拡張ポイントに拡張を追加する必要があります。

戻り値:
エフェクトのカテゴリ
デフォルト:
""

convertTo

public abstract java.lang.String convertTo
エフェクトIDが id() のエフェクトを、convertTo() に指定したIDのエフェクトに変換します。 例えば、Foo エフェクトの改良版として Foo2 エフェクトを作成したため Foo エフェクトを Foo2 エフェクトに自動的に変換したい、という場合に次のように使用します。

  @Effect(id="Foo", convertTo="Foo2")
  public class Foo {
  
        // シグネチャが public void convert(Map<String, Object>) 
        // のメソッドを実装し、エフェクトのプロパティを変換します。 
        // このメソッドが無い場合はエフェクトIDが付け替えられるだけとなります。
        public void convert(Map<String, Object> map) {
                // プロパティの変換処理
                // TODO 変換処理の詳細を書く
        }
  }
 
この場合、Effect アノテーションを付けたクラスは エフェクトクラスではなくエフェクトのコンバータクラスとして動作することになります。

なお、旧版のエフェクトを残したまま新版のエフェクトと併存させても構いません。 変換と併存のどちらを選ぶかは利用者の利便性などを考慮して決定してください。

戻り値:
変換先のエフェクトID
デフォルト:
""