IDLでは型宣言をインタフェース内でネストできます。Javaではクラスをインタフェース内でネストできません。そのため,インタフェースのスコープ内で宣言されるIDL型は,Javaクラスにマッピングされる際,特殊なスコープパッケージ内にマッピングされます。
これらの型宣言を含むIDLインタフェースは,スコープパッケージを生成し,マッピングされたJavaクラス宣言を含みます。スコープパッケージ名は,IDL型名に「Package」を付けて構成されます。
// IDL
module Example {
interface Foo {
exception e1 {};
};
};
// generated Java
package Example.FooPackage;
final public class e1 extends
org.omg.CORBA.UserException {...}