ユーザー定義チェックの作成

ユーザー定義チェックを作成できます。ユーザー定義チェックは、ユーザーが独自にコーディングしたカスタム・チェックであり、外部チェックとも呼ばれます。System プロファイルなど、ドメイン固有のチェックが必要な場合に有用な仕組みです。

このタスクについて

IBM® Rational® Rhapsody® に用意されている定義済み内部チェックと同様に、コード生成時に外部チェックを呼び出すかどうかを定義できます。また、どのメタクラスに対して外部チェックを実行するかを定義できます。

Rational Rhapsody API を使用してユーザー定義の外部チェックを実装し、Rational Rhapsody の GUI を使用して、外部チェックを実行できます。内部チェックと外部チェックのいずれの場合も、製品の同じ GUI を使用してチェックを実行し、結果を表示します。

Rational Rhapsody には、ユーザー定義外部チェックの登録、列挙、削除のための API が用意されています。それは、C++ および VB ユーザー向けの COM API、および Java ユーザー向けの Java API です。チェックの実行時に、COM コールバック (接続点) を使用して、ユーザー定義コードを開くことができます。この機能は、COM API または Java API を使用するユーザーのために用意されており、ユーザー定義チェックの追加、実行または削除を行うことができます。

チェック対象のメタクラス (または new term) を指定すると、チェックが呼び出され、指定したメタクラスの要素がチェックされます。

手順

例えば、COM API ユーザーがユーザー定義チェックを作成するには、次の手順を行います。

  1. COM API の IRPExternalCheck インターフェースで定義したクラスを実装します。
  2. IRPExternalCheckRegister の Add メソッドを使用してこのクラスを登録します。IRPApplication のメソッドによってこのシングルトンを取得します。
  3. IRPExternalCheck をクライアント・マシンに実装します。

タスクの結果

下表に、ユーザー定義チェック用に実装する必要がある、インターフェースのメソッドを示します。

表 1. ユーザー定義チェック用に実装する必要があるインターフェースのメソッド
メソッド 説明
GetName() 名前属性を文字列として返します。
GetDomain() ドメイン属性を文字列として返します。
GetSeverity() 定義済みの重大度文字列 Error、Warning、Info のいずれかを返します。
IsCompleteness() 完全性のチェックの場合は TRUE を返し、それ以外の場合 (正確さのチェック) は FALSE を返します。
ShouldCallFromCG() コード生成時に、このチェックの呼び出す場合は、TRUE を返します。
GetRelevantMetaclasses() 関連メタクラス、用語、またはこの両方のリストを返します。このチェックは、メタクラスが返される現行構成のスコープ内の要素に対して、Rational Rhapsody によって開始されます。
Execute() Rational Rhapsody がこのチェックを呼び出して実行します。このルーチンでは、チェックが合格の場合は TRUE、不合格の場合は FALSE が返されます。このチェックは次の 2 つのパラメーターをとります。
  • Rational Rhapsody によって提供される 1 つ目のパラメーターは、チェック対象である IRPModelElements です (そのメタクラスは GetReleventMeltaclass() リスト内のチェックにあります)。
  • 2 つ目のパラメーターは、チェックが不合格であった場合に Rational Rhapsody によって強調表示される一連の IRPModelElements です。これは、該当時にチェックによって返されるパラメーターです。

ユーザー定義チェックのデプロイ

このタスクについて

コードは COM クライアントで提供します。

  • VB を使用している場合、クライアントは EXE ファイルです。
  • C++ を使用している場合、クライアントは EXE ファイルまたは DLL ファイルです。
  • Java を使用する場合、クライアントは CLASS ファイルまたは JAR ファイルです。

IBM Rational Rhapsody は、プラグイン・メカニズムを使用して、通常は HEP ファイルまたは INI ファイルで、コードをロードします。通常、HEP ファイルは関連するプロジェクトまたはファイルの次に追加されています。例えば、Java プラグインを作成するユーザーは、Rational Rhapsody Java API を使用してプラグインを作成し、次の例で示すような HELP ファイルを提供します。

[Helpers]
numberOfElements=1
name1=ExternalChecks
JavaMainClass1=JavaPlugin.ExternalChecks
JavaClassPath1=$OMROOT¥..¥DoDAF

Java および VB 用のチェック・プロジェクト例が Rational Rhapsody のインストール・パスの ExternalChecksSample サブフォルダーに用意されています (<製品のインストール・フォルダー>¥Samples¥ExtensibilitySamples¥ExternalChecksSample など)。

ユーザー定義検査の削除

このタスクについて

ユーザー定義チェックを削除するには、IRPExternalCheckRegister の Remove メソッドを使用して、クラスを削除します。IRPApplication のメソッドを使用してこの singleton を取得します。


フィードバック