レポート (RPTDESIGN ファイル) にある種のモデル情報を追加する前に、ターゲット・モデルから情報を抽出するカスタム XPath 関数を書き込む必要があります。
始める前に
前提条件: このタスクを完了するには、Eclipse プラグイン開発環境および UML2 API について十分に理解しておく必要があります。
手順
カスタム XPath 関数を書き込むには、以下のようにします。
- 新規プラグイン・プロジェクトの作成
- 「プラグイン開発」パースペクティブで、とクリックし、「プラグイン開発」を展開して、「プラグイン・プロジェクト」を選択し、「次へ」をクリックします。
- com.ibm.field.birt.xpath_extensions などのプラグイン ID を入力して、
「次へ」および「終了」をクリックします。 プラグインが「パッケージ・エクスプローラー」ビューに追加され、プラグインに関する情報が、「概要」ページの「プラグインのマニフェスト・エディター」ビューに表示されます。
- org.eclipse.jet.xpathFunctions 拡張ポイントを拡張します。
- 「概要」ページで、「拡張」タブをクリックし、
「追加」をクリックします。
- 「必須プラグインから拡張ポイントのみを表示 (Show only extension points from required plug-ins)」チェック・ボックスのチェック・マークを外します。
- 「拡張ポイント・フィルター」フィールドで、
*.jet と入力し、拡張のリストで、「org.eclipse.jet.xpathFunctions」をダブルクリックします。
- プラグインをプラグイン依存関係のリストに追加するには、「はい」をクリックします。
- 「MANIFEST.MF」タブをクリックし、プラグインが UML API への可視性を持つように、org.eclipse.uml2.uml を Require_Bundle リストに追加します。 リストのコードは、以下のようになります。
Require_Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.uml2.uml,
org.eclipse.jet
- 「plugin.xml」タブをクリックし、<function> 定義を変更して、カスタム関数を定義します。 例えば、SlotValue という名前で、2 つの引数を持ち、クラス com.ibm.field.birt.xpath_extensions.SlotValue で実装される関数を定義する場合、コードは、以下のようになります。
<function
implementation="com.ibm.field.birt.xpath_extensions.SlotValues"
maxArgs="2"
minArgs="2"
name="slotValue">
</function>
- を
クリックします。
- コード・シェルを作成し、プラグインにリンクします。
- 「パッケージ・エクスプローラー」ビューで、新規プラグイン・プロジェクトを右クリックして、とクリックします。
- 「パッケージ」 フィールドで、
プラグイン・プロジェクトの名前を指定します。
- 「名前」フィールドで、クラスの名前を入力します。 新規関数に割り当てた名前と同じ名前を使用します。例えば、ステップ 2 で定義された関数の場合、名前は、SlotValue になります。
- インターフェースを追加する場合は、「追加」をクリックします。
- 「新規 Java クラス」ダイアログ・ボックスの「インターフェースの選択」フィールドで、XPathFunction と入力し、一致する項目のリストから、「XPathFunction - org.eclipse.jet.xpath」を選択して、「OK」をクリックし、「終了」をクリックします。
- コードを XPath 関数の Java™ ファイルに追加し、必要なタスクを実行させ、ファイルを保存します。
例えば、関数 SlotValue を最初の引数 (XPath 式) から生じるノードを通して反復させ、インスタンスの指定が検索される場合に、getStringValue 関数を起動することにより、スロット名引数により指定されるスロットの値を戻すときは、以下のコードを書き込みます。
package com.ibm.field.birt.xpath_extensions;
import java.util.Iterator;
import java.util.List;
import org.eclipse.jet.xpath.NodeSet;
import org.eclipse.jet.xpath.XPathFunction;
import org.eclipse.uml2.uml.InstanceSpecification;
import org.eclipse.uml2.uml.Slot;
import org.eclipse.uml2.uml.ValueSpecification;
public class SlotValue implements XPathFunction {
public String getStringValue(InstanceSpecification ia, String slotname) {
List slots = ia.getSlots();
for (Iterator iterator = slots.iterator(); iterator.hasNext();) {
Slot slot = (Slot) iterator.next();
String definingFeatureName = slot.getDefiningFeature().getName();
if (definingFeatureName.equals(slotname)) {
List values = slot.getValues();
for (Iterator iterator2 = values.iterator(); iterator2
.hasNext();) {
ValueSpecification value = (ValueSpecification) iterator2.next();
return value.stringValue();
}
}
}
return null;
}
public Object evaluate(List args) {
Object obj = args.get(0);
String slotname = (String) args.get(1);
if (obj instanceof NodeSet) {
NodeSet ns = (NodeSet) obj;
for (Iterator iterator = ns.iterator(); iterator.hasNext();) {
Object item = (Object) iterator.next();
if (item instanceof InstanceSpecification){
InstanceSpecification ispec = (InstanceSpecification) item;
if ((slotname != null)&&(slotname.length()>0))
return getStringValue(ispec,slotname);
}
}
}
return null;
}
}
- 新規フィーチャー・プラグイン・プロジェクトの作成
- とクリックし、「プラグイン開発」を展開して、「フィーチャー・プロジェクト」を選択し、「次へ」をクリックします。
- 「プロジェクト名」フィールドに、プロジェクトの名前を入力して、「次へ」をクリックします。 多くの場合、プラグインの名前と同様なフィーチャー名を割り当てると便利です。プラグイン com.ibm.field.birt.xpath_extensions の場合、com.ibm.field.birt.xpath_extensions.feature を選択することができます。
- プラグインにフィーチャーを組み込む場合、ステップ 1 で作成されたプラグインのチェック・ボックスを選択し、「終了」をクリックします。 フィーチャーが「パッケージ・エクスプローラー」ビューに追加され、フィーチャーに関する情報が、「概要」ページの「フィーチャーのマニフェスト・エディター」ビューに表示されます。
- 「概要」ページの「名前」フィールドで、
XPath Extensions Feature などのフィーチャー名を入力します。
- 「概要」ページで、「エクスポート・ウィザード」のリンクをクリックします。
- 「アーカイブ・ファイル」を選択し、ロケーションとファイルの名前 (xpath_extensions.zip など) を指定して、「終了」をクリックします。
注: 複数のカスタム XPath 関数プロジェクトに対して、このフィーチャー・プラグインを使用できます。
- 新規プラグインをレポートを設計している Eclipse のインスタンスにインポートします。
- アーカイブ・ファイルを C:/temp/xpath_extensions などのディレクトリーに抽出します。
- Eclipse では、をクリックします。
- 「インストール/更新」ウィザードで、「インストールする新規フィーチャーを検索」をクリックし、「次へ」をクリックします。
- 「新規ローカル・サイト」をクリックし、フィーチャーとプラグインを含むフォルダーを選択して、「OK」をクリックし、
「終了」をクリックします。
- 「検索結果」ダイアログ・ボックスで、フィーチャーを選択し、「次へ」をクリックします。
- ご使用条件の条項に同意する場合は、「使用条件の条項に同意します」を選択し、「次へ」をクリックして、「終了」クリックします。
- コンピューターの再起動を指示するプロンプトが出された場合は、「はい」をクリックします。
タスクの結果
レポート設計で、新規の XPath 拡張機能を使用できるようになりました。
注: また、レポート設計のユーザーは、カスタム XPath 関数によって異なるレポート設計からレポートを生成する前に新規フィーチャーをインポートする必要があります。『カスタム XPath 関数のインポート』のトピックでは、一般情報が提供されていますが、ユーザーがどこでフィーチャーを取得し、どのように使用することができるかを説明した RPTDESIGN ファイルに付随するカスタム・ユーザー文書を提供する必要がある場合もあります。