すべてのユーザ定義IDL型には,生成された型名の後ろにHelperが付いた,追加の「helper」Javaクラスがあります。型を処理するために必要な幾つかの次のような静的メソッドが提供されています。
ユーザ定義IDL型<typename>では,型用に生成された次のJavaコードがあります。マッピングされたIDLインタフェースのHelperクラスには,専用のnarrowオペレーションがあります。
// generated Java helper
public class <typename>Helper {
public static void
insert(org.omg.CORBA.Any a, <typename> t);
public static <typename> extract(org.omg.CORBA.Any a);
public static org.omg.CORBA.TypeCode type( );
public static String id( );
public static <typename> read(
org.omg.CORBA.portable.InputStream istream);
{...}
public static void write(
org.omg.CORBA.portable.OutputStream ostream,
<typename> value)
{...}
// only for interface helpers
public static
<typename> narrow(org.omg.CORBA.Object obj);
}
// IDL - named type
struct st {long f1, String f2};
// generated Java
public class stHelper {
public static void insert(org.omg.CORBA.Any any,
st s); {...}
public static st extract(org.omg.CORBA.Any a) {...}
public static org.omg.CORBA.TypeCode type( ) {...}
public static String id( ) {...}
public static st read(
org.omg.CORBA.InputStream is) {...}
public static void write(org.omg.CORBA.OutputStream os,
st s) {...}
}
// IDL - typedef sequence
typedef sequence <long> IntSeq;
// generated Java helper
public class IntSeqHelper {
public static void insert(org.omg.CORBA.Any any,
int[ ] seq);
public static int[ ] extract(org.omg.CORBA.Any a){...}
public static org.omg.CORBA.TypeCode type( ){...}
public static String id( ){...}
public static int[ ] read(
org.omg.CORBA.portable.InputStream is)
{...}
public static void write(
org.omg.CORBA.portable.OutputStream os,
int[ ] seq)
{...}
}