コントロール メソッドの呼び出し

以下のトピックでは、アプリケーションにおけるシステム コントロールまたはカスタム コントロールの使用方法について説明します。このトピックの内容は以下のとおりです。

コントロール宣言の追加

メソッドの呼び出し

コントロール宣言の追加

コントロールのメソッドを呼び出すには、最初に呼び出し側のクライアントにコントロール宣言を追加してから、そのコントロールのメソッドを呼び出します。

コントロール宣言を追加するには、J2EE パースペクティブ ([ウィンドウ|パースペクティブを開く|J2EE]) を開き、クライアント クラスの Java ソースの任意の場所で右クリックして、[挿入|コントロール] を選択します。クライアントが利用できるコントロールのリストからコントロールを選択します。

下のダイアログの詳細な説明については、「[コントロールの選択] ダイアログ」を参照してください。

ダイアログからコントロールを選択すると、クライアント クラスに (1) コントロール クラスの import 文と (2) コントロール クラス宣言が追加されます。

    MyClient.java

    import controls.CustomerControl;
  
    @Control
    private CustomerControl customerControl;
  

コントロール クラス宣言が追加されると、コントロールのメソッドを呼び出すことができます。

メソッドの呼び出し

コントロール クラス宣言をクライアント クラスに追加すると、標準の Java ドット表記を使用してメソッドを呼び出すことができます。たとえば、コントロール クラス CustomerControl の宣言を追加するとします。

    @Control
    private CustomerControl customerControl;

さらに、コントロールにメソッド getCustomers() が定義されているとします。

    public Customer[] getCustomers();

クライアントのコードから、このメソッドを以下のように呼び出すことができます。

    Customer[] custResult = customerControl.getCustomers();

デフォルトのコントロール プロパティのオーバーライド

状況によっては、コントロールのコードを編集するのではなく、クライアントのコード内でコントロールのプロパティをオーバーライドするのが望ましい場合があります。たとえば、JNDI データ ソース名がアノテーションで設定されているデータベース コントロールがあるとします。

@JdbcControl.ConnectionDataSource(jndiName = "myDataSource")
public interface CustomerDB extends JdbcControl

しかも、JNDI 名が変更された場合や、データベース コントロールをデータ ソースの JNDI 名が異なる、別のコンテキストで再利用したい場合を考えます。アノテーション値を手動で変更してコントロールを再コンパイルするのは不便 (または不可能) な場合があります。この場合は、クライアントのコード内から JNDI 値を直接オーバーライドするのが望ましいといえます。アノテーション値をオーバーライドするには、別のクラス (コントロールに関連付けられた ControlBean クラス) を呼び出します。ControlBean クラスはコントロールのすべてのメソッドを実装しており、ControlBean クラスを使用して、プログラムからアノテーション ベースのコントロールのプロパティにアクセスすることができます。ControlBean は、生成された JavaBean クラスで、コントロールの構築時に自動的に作成されます。

以下の節では、この生成された ControlBean クラスの概要と、ControlBean クラスを使用してデフォルトのコントロールのアノテーション値をオーバーライドする方法について説明します。

クライアント クラスに設定されたアノテーション値のオーバーライドについては、詳細については、「ControlBean によるコントロールのアノテーション値のオーバーライド」を参照してください。

ControlBean 生成クラス

各コントロールには、関連付けられた ControlBean クラスがあります。ControlBean は自動的に生成されます。ControlBean を使用すると、コントロールのアノテーションでしか利用できない設定内容にプログラムを通じてアクセスできるようになります。一般的に ControlBean クラスは、Java のソース ファイルとしてではなく、アプリケーションに含まれるコンパイル済みのクラス ファイルとしてのみ存在します。

ControlBean 生成クラスは、コントロールのメンバーおよびメソッドを基に生成されます。ControlBean 生成クラスは、コントロールへのさまざまなアクセス ポイントを提供する、元のコントロール クラスのスーパーセットです。タイマー コントロールの場合は、ControlBean 生成クラスの形式は固定されます (タイマー コントロールのメンバーとメソッドが固定されるため)。しかし、拡張可能なシステム コントロール (EJB、JDBC、JMS のコントロール) やカスタム コントロールの場合は、ControlBean 生成クラスは可変になります (ソース コントロールのメンバーとメソッドが可変のため)。

生成された ControlBean クラスの名前には、「Bean」という文字列が付いています。コントロール名が CustomerDB.java の場合、生成された ControlBean クラスは CustomerDBBean.class となります。

コントロールのソースから生成された ControlBean の詳細については、「コントロール作成モデル」を参照してください。

関連トピック

コントロール作成モデル

コントロール プロパティのオーバーライド


さらにヘルプが必要ですか。質問は Workshop ニュース グループまでお寄せください。