创建用户定义的检查

您可以创建用户定义的检查,这些检查也称为外部检查,也就是您自己编码的定制检查。例如,系统概要文件通常需要特定于域的检查。

关于此任务

就像 IBM® Rational® Rhapsody® 提供的预定义内部检查一样,您可以定义代码生成功能是否调用外部检查。另外,还可以定义要对哪些元类执行外部检查。

可以通过 Rational Rhapsody API 来实现用户定义的外部检查,并可以使用 Rational Rhapsody 中的现有 GUI 来运行这些检查。无论是内部检查还是外部检查,这些检查都将执行,并且它们的结果将通过产品中的同一个 GUI 显示。

Rational Rhapsody 提供了一个 API,允许通过使用 COM API(对于 C++ 和 VB 用户)和 Java™ API(对于 Java 用户)来注册、枚举和除去用户定义的外部检查。COM 回调(连接点)允许您在执行检查时打开用户定义的代码。此功能适合于那些使用 COM API 或 Java API 的用户,因此,您可以添加、执行或除去用户定义的检查。

您确定所要检查的元类(或新项),这将调用您的检查以检查这些元类的元素。

过程

例如,如果 COM API 用户要创建用户定义的检查,请完成下列步骤:

  1. 实现根据 COM API 中的 IRPExternalCheck 接口定义的类。
  2. 使用 IRPExternalCheckRegister 的 Add 方法注册这个类。您可以通过 IRPApplication 的方法获取这个单实例。
  3. 必须在客户机上实现 IRPExternalCheck

结果

下表列示了此接口中必须为用户定义的检查实现的方法的列表。

表 1. 此接口中必须为用户定义的检查实现的方法
方法 说明
GetName() 以字符串形式返回 name 属性。
GetDomain() 以字符串形式返回 domain 属性。
GetSeverity() 返回其中一个预定义的严重性字符串:Error、Warning 或 Info。
IsCompleteness() 对于完整性检查返回 TRUE,对于正确性检查返回 FALSE。
ShouldCallFromCG() 如果必须在用户生成代码时调用此检查,那么返回 TRUE。
GetRelevantMetaclasses() 返回相关元类和/或项的列表。此检查将由 Rational Rhapsody 针对当前配置的作用域中任何返回了相应元类的元素启动。
Execute() Rational Rhapsody 调用,用于运行检查。如果此检查成功,那么此例程将返回 TRUE;如果此检查失败,那么此例程将返回 FALSE。此例程有两个参数:
  • Rational Rhapsody 提供的第一个参数是必须对其运行检查的 IRPModelElements(它的元类包含在检查的 GetReleventMeltaclass() 列表中)。
  • 此检查返回的第二个参数(如果相关)是 Rational Rhapsody 在检查失败时要突出显示的 IRPModelElements 的集合。

反馈