«CORBAInterface» 类可以同时具有特性和操作。这些元素在 IDL 接口中生成为具有相同名称的特性和操作。
用于特性和操作的数据类型是在 IDL 文件中“按现状”生成的。因此,您必须使用预定义的 CORBA 类型程序包中或您自己的 «CORBAModule» 或 «CORBAInterface» 中定义的 CORBA 数据类型。
请按如下所示在模型中创建子类,以实现 IDL 接口:
- 每个 CORBA 操作必须在实现类中具有相应的 C++ 操作。
- 每个 CORBA 特性必须在实现类中具有相应的 C++ 特性。您必须在实现类中提供 get 和 set 操作。
- 每个 CORBA 类型(例如,long)必须在实现类中具有相应的类型(例如,CORBA::long)。您可以从 CORBA 预定义的类型程序包中导入这些类型。
要简化该过程,您可以将 CORBA 操作和特性从 CORBA 接口中拖放到普通类中。IBM® Rational® Rhapsody® 会自动转换类型。
以下约束适用于有关代码生成的 CORBA 接口:
- CORBA 接口的特性和操作都不能分类为公用、专用或受保护。因此,所生成的 IDL 文件仅引用公用特性和操作。受保护和专用特性将被忽略。
- «CORBAInterface» 构造型类无法实例化。因此,操作主体(如果存在)将被忽略。
- virtual、static 和 const 关键字对于 «CORBAInterface» 类没有意义。因此,IDL 特性生成的过程中将会忽略 virtual/static 关键字。
您可以通过将特性的 CORBA::Attribute:IsReadOnly 属性设置为 True 来创建 CORBA 接口 readonly(CORBA 关键字)的特性。要创建 CORBA 接口 oneway 的操作,请将操作的 CORBA::Operation::IsOneWay 属性设置为 True。
另外,以下标准 UML 选项可用于操作:
- 操作自变量的方向可以为 in、out 或 inout。请在“自变量”窗口中指定这些值。
- CORBA::Operation::ThrowExceptions 属性使您能够指定操作所抛出的异常。例如,如果某个操作抛出 exc1 和 exc2 异常,请为 ThrowExceptions 属性设置 "exc1, exc2"。