目次 | 前の項目 | 次の項目 JavaBeans の拡張可能ランタイム包含関係およびサービスプロトコル


5.0 標準/提唱される BeanContext サービス規約


5.0.1 InfoBus をサポートする BeanContext

InfoBus 技術は、発行と署名の抽象化に基づき、単一の Java 仮想マシン* 内の JavaBean コンポーネント間で、動的な自己記述型データの認識および交換を容易にする標準拡張パッケージです。

InfoBus を入れ子になった BeanContextChild に公開する BeanContext は、javax.infobus.InfoBus 型の hasService() および getService() メソッドを介してサービスを公開することにより、その機能を実行します。

このため、BeanContextChild の実装は、この機構を使って InfoBus のインスタンスを認識することにより、現行の BeanContext に対応した一般的な InfoBus の実装を検出できます。

Infobus 1.2 の仕様では、InfoBus クラスが提供する便利な機構が定義されています。 この機構を利用すると、特定の BeanContextServices のインスタンス内で入れ子になった BeanContextChild インスタンスの検出機構が単純化されます。


5.0.2 印刷をサポートする BeanContext

印刷機能をその下位構造に公開する BeanContext は、java.awt.PrintJob (サブ) タイプの参照を委譲できます。

Java Network Printing Interface が発展するにつれて、補足的な仕様が提供され、サービス機構を通じてその機能が公開されます。


5.0.3 BeanContext 設計/実行時モードのサポート

JavaBeans は、JavaBeans がアプリケーション開発ツールつまり IDE で開発者により操作および変換される際のモードである、「設計」モードをサポートします。 また、その結果 JavaBeans がアプレット、アプリケーションまたは抽象化された他の実行可能プログラムの一部として実行時にインスタンス生成される際のモードである、「実行」モードもサポートします。

仕様の最初のバージョンでは、「モード」または状態 (つまり「設計」時または「実行」時) は、JVM* のグローバルな属性でした。 しかし、これでは不十分です。というのは、たとえばアプリケーション開発ツール環境では、「実行」モードで機能する JavaBeans がアプリケーション開発ツール環境の一部として存在します。 同様に、「設計」モードで機能する JavaBeans は、開発者がアプリケーション作成にアプリケーション開発ツールを使って構築します。

このため、この「モード」を JVM グローバルよりさらに細分化してスコープする能力が必要になります。

抽象化された BeanContext は、1 つ以上の JavaBeans の「コンテナ」または「コンテキスト」として、この「モード」をより細かくスコープするための適切な機構を提供します。

このため、この「モード」を下位に公開および伝達する BeanContext は、次のようにして java.beans.DesignMode 型の参照を委譲できます。

public interface java.beans.DesignMode {
	void    setDesignTime(boolean isDesignTime);
	boolean isDesignTime();
}
また、参照を委譲する BeanContext は、propertyName = "designTime" と指定し、モードにより値が変更される際には oldValue および newValue に適切な値を設定して、適切な java.beans.propertyChangeEvent をトリガする必要があります。

BeanContextChild のインスタンスが、内部で入れ子になった BeanContext のインスタンスに対して setDesignTime() を呼び出すのは、不正な動作であることに留意してください。


5.0.4 BeanContext の可視性サポート

関連付けられた表示機能、つまり GUI を保持する JavaBeans は、GUI が物理的に不可能である (ハードウェアが存在しない)、または現在の状況では適切ではない (クライアントではなくサーバコンテキストで実行中) ことを示す環境でインスタンス生成が可能です。

JavaBeans 仕様の最初のバージョンでは、JavaBeans に「可視」状態、つまり GUI の描画用の機構を提供するために、java.beans.Visibility インタフェースが導入されました。

子が持つ GUI の表示機能に関して、特定のポリシーを施行する BeanContext は、java.beans.Visibility インタフェースを使って、子を制御します。


5.0.5 BeanContext からロケールを判定する

BeanContext は、入れ子構造になった JavaBeans 間で重要な属性の関連付けおよび伝達を行うために、関連付けられたロケールを保持する場合があります。

このため、BeanContext は、propertyName = "locale" とし、oldValue にロケール委譲の前の値への参照を設定し、newValue にはロケール委譲の新たな値への参照を指定して、適切な java.beans.PropertyChangeEvent をトリガする必要があります。

BeanContext に対するロケール値の設定および取得は、実装に依存しています。

* この Web サイトで使用されている用語「Java 仮想マシン」または「JVM」は、Java プラットフォーム用の仮想マシンを表します。



目次 | 前の項目 | 次の項目
Copyright © 1998-1999 Sun Microsystems, Inc. All Rights Reserved.