就如 IBM® Rational® Rhapsody® 提供的預先定義內部檢查一樣,您可以定義是否從產生程式碼呼叫外部檢查。此外,您還可以定義針對哪些 meta 類別執行外部檢查。
您可以透過 Rational Rhapsody API 實作使用者定義的外部檢查,並可以使用 Rational Rhapsody 中已有的 GUI 來執行這些外部檢查。不管是內部檢查還是外部檢查,都會執行檢查,並且會透過產品中相同的 GUI 顯示結果。
Rational Rhapsody 提供一個 API,用於透過使用 COM API(C++ 及 VB 使用者)和 Java API(Java 使用者)登錄、列舉和移除使用者定義的外部檢查。COM 回呼(連線點)可讓您在執行檢查時,開啟使用者定義的程式碼。此功能適用於使用 COM API 或 Java API 的使用者,以便您可以新增、執行或移除使用者定義的檢查。
您可決定要檢查哪些 meta 類別(或新項目),並且會呼叫您的檢查以檢查您決定的 meta 類別的元素。
例如,為了 COM API 使用者建立使用者定義的檢查:
下列表格列出介面中的方法,是您必須實作才能進行使用者定義的檢查。
| 方法 | 說明 |
|---|---|
| GetName() | 將名稱屬性以字串形式傳回。 |
| GetDomain() | 將網域屬性以字串形式傳回。 |
| GetSeverity() | 傳回其中一個預先定義的嚴重性字串:錯誤、警告或資訊。 |
| IsCompleteness() | 如果檢查針對完整性則傳回 TRUE,否則傳回 FALSE(檢查針對正確性) |
| ShouldCallFromCG() | 如果在使用者產生程式碼時必須呼叫檢查,則傳回 TRUE |
| GetRelevantMetaclasses() | 傳回相關 meta 類別及/或項目清單。針對現行配置範圍內傳回其 meta 類別的任何元素,Rational Rhapsody 將啟動檢查。 |
| Execute() | 由 Rational Rhapsody 呼叫以執行檢查。如果檢查通過,則此常式傳回
TRUE,或者如果檢查失敗,則傳回 FALSE。它有兩個參數:
|
您在 COM 用戶端中提供程式碼。
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 子資料夾中提供(例如,<product installation folder>\Samples\ExtensibilitySamples\ExternalChecksSample)。
若要移除使用者定義的檢查,請使用 IRPExternalCheckRegister 移除方法來移除類別。可以使用 IRPApplication 上的方法取得此單態。