«CORBAInterface» 類別可以同時有屬性及作業。這些元素會產生相同名稱至 IDL 介面中的屬性及作業。
用於屬性及作業的資料類型會在 IDL 檔案中「依現狀」產生。因此,您必須使用 CORBA 資料類型,此類型定義於預先定義的 CORBA 類型套件或您自己的 «CORBAModule» 或 «CORBAInterface»。
在模型中建立子類別以實現 IDL 介面,如下所示:
- 每一個 CORBA 作業必須在實現類別中有對應的 C++ 作業。
- 每一個 CORBA 屬性必須在實現類別中有對應的 C++ 屬性。您必須在實現類別中提供 get 及 set 作業。
- 每一個 CORBA 類型(例如,long)必須在實現類別中有對應的類型(例如,CORBA::long)。您可以從 CORBA 預先定義類型套件中匯入這些類型。
若要簡化程序,您可以從 CORBA 介面將 CORBA 作業及屬性拖放至一般類別。IBM® Rational® Rhapsody® 會自動轉換類型。
下列關於產生程式碼的限制適用於 CORBA 介面:
- 無法將 CORBA 的屬性及作業分類為 public、private 或 protected。因此,產生的 IDL 檔案只會參照 public 屬性及作業。
會忽略 protected 及 private 屬性。
- 無法將 «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"。