カスタム コントロールは、2 つの Java ソース ファイル (インタフェース クラス ファイルと実装クラス ファイル) で構成されています。
インタフェース クラスには、パブリックにアクセスできるコントロールのメソッドが含まれています。コントロールのクライアントは、実装クラスにある実際のメソッドを呼び出します。
実装クラスには、コントロールの実際の実装コードが記述されています。
さらに、各カスタム コントロールに関連付けられた第三のクラス (生成された JavaBean クラス) が存在します。このクラスは、インタフェースと実装のソース ファイルから作成されたビルド結果です。生成された JavaBean クラスは、特にコントロールのデフォルトのアノテーション値をオーバーライドするなど、プログラムによるコントロールへの補足的なアクセスを提供します。このクラスの詳細については、「ControlBean によるコントロールのアノテーション値のオーバーライド」を参照してください。
カスタム コントロールのインタフェース クラスは、@ControlInterface アノテーションで修飾される必要があります。
package controls.hello; import org.apache.beehive.controls.api.bean.ControlInterface; @ControlInterface public interface Hello { ... }
@ControlInterface アノテーションは、このクラスを コントロールのフレームワークの一部として処理するようにコンパイラに通知します。
また、インタフェース クラスにはパブリックにアクセスできるコントロールのメソッドがリストされています。以下に、パブリックにアクセスできるメソッドを持つコントロールの例を示します。
package controls.hello; import org.apache.beehive.controls.api.bean.ControlInterface; @ControlInterface public interface Hello { public String hello(); }
カスタム コントロールの実装クラスには、コントロールの実行内容を定義したコードである、コントロールのロジックが記述されています。このファイルには、コントロールの各メソッドが実行する内容を定義します。
カスタム コントロールの実装クラスでは、以下に示す要件が最低限必要です。
import org.apache.beehive.controls.api.bean.ControlImplementation; @ControlImplementation public class HelloImpl
import org.apache.beehive.controls.api.bean.ControlImplementation; @ControlImplementation public class HelloImpl implements Hello
(a) java.io.Serializable を実装する
import java.io.Serializable; @ControlImplementation public class HelloImpl implements Hello, Serializable
@ControlImplementation(isTransient=true) public class HelloImpl implements Hello { }