IR内のオブジェクトは階層構造になっており,その階層は,IDL指定でインタフェースが定義されている方法に対応しています。IDLモジュール定義が幾つかのインタフェース定義を含むことがあるのと同様に,IR内の一部のオブジェクトがほかのオブジェクトを含むことがあります。IDLサンプル16-1に示すIDLファイルが,IR内でどのようにしてオブジェクトの階層に変換されるのかを図16-1に示します。
// Bank.idl
module Bank {
interface Account {
float balance();
};
interface AccountManager {
Account open(in string name);
};
};
図16-1 Bank.idlのIRオブジェクト階層
OperationDefオブジェクトには,パラメタとリターンタイプを保持する追加データ構造体(インタフェースではない)のリファレンスが入っています。