イベント・インスタンス・メタデータへのアクセス

イベント・インスタンス・メタデータへのアクセスは、Java ベースの Eclipse Modeling Framework によって実行されます。

イベント・オブジェクトを使用する場合に必要となるクラスおよび インターフェースを提供する org.eclipse.hyades.logging.events.cbe パッケージは、Eclipse Modeling Framework (EMF) に基づいています。EMF とは、構造化されたデータ・モデルに基づいてアプリケーション・コードを生成するときに使用される Java フレームワークのことです。 また、EMF は、データ・モデルを記述するメタデータにアクセスするために使用するインターフェースも生成済みコード内に提供します (EMF について詳しくは、http://www.eclipse.org/emf にある Eclipse Modeling Framework 資料を参照)。

EMF と互換性のあるツールは、このインターフェースを使用して、データ・モデルに関する予備知識やインプリメンテーションへのアクセスなしで CommonBaseEvent イベント・データと対話できます。これにより、開発ツールで他のデータ・モデルのデータを CommonBaseEvent モデルに転送するコードを生成できます。 その後、アプリケーション開発者は、データを構築するコードではなくデータを使用するコードの作成に焦点を合わせることができます。

例えば、ネットワーク・イベントをモニターし、EMF で独自のデータ・モデルを記述するイベント・ソースがあると仮定します。両方のデータ・モデルへのアクセスによって、開発ツールには、イベント・ソース・データ・モデルのフィールドとともに CommonBaseEvent データ・モデルのフィールドが表示されます。次に開発者は、グラフィカル・インターフェースを使用して、イベント・ソース・モデルのフィールドから CommonBaseEvent モデルのフィールドへのマップ方法を示すことができます。例えば、イベント・ソース・データ・モデルの Workstation.name というフィールドは、CommonBaseEvent データ・モデルの CommonBaseEvent.sourceComponentId.location フィールドに対応します。どちらのデータ・モデルも標準の EMF インターフェースを使用して記述されているので、ツールにより、2 つのモデル間でのデータ転送を処理するコードを生成することができます。

以下のコード・フラグメントは、開発ツールがどのように EMF インターフェースを使用して CommonBaseEvent データ・モデルに関する情報を照会し、この情報を使用してイベント・インスタンスと対話するかを示す例です。 この例は、単純なイベント・コンシューマーの一部と見なすことができます。 イベント・コンシューマーは、イベント・インスタンスのすべてのフィールドを繰り返し処理し、フィールドごとに、すべてのフィールドの名前と値を出力します。

// event is a valid CommonBaseEvent instance

// Get list of event instance structural features (fields)
List features = event.eClass().getEAllStructuralFeatures();

// iterate through list; print names and values
for (int i = 0 ; i < features.size() ; i++)
  {
    EStructuralFeature feature = (EStructuralFeature)features.get(i);
    Object value = eObj.eGet(feature);
    System.out.println(feature.getName() + ":" + value);
  }

CommonBaseEvent データ・モデルは、EMF ファイル cbe.ecore および cbe.genmodel に記述されています。これらのファイルは、Common Event Infrastructure SDK に組み込まれています。ユーザーは、Eclipse ベースの開発環境にこれらのファイルをインポートし、EMF を使用して CommonBaseEvent オブジェクトと対話するコードを生成できます。


ご利用条件 |


(c) Copyright IBM Corporation 2005, 2006.
本製品では Eclipse テクノロジーが採用されています。(http://www.eclipse.org)