Hitachi

VisiBroker Version 5 Borland(R) Enterprise Server VisiBroker(R) プログラマーズリファレンス


2.8.2 struct

IDL structは,IDLのインスタンス変数,およびすべての値のメンバを順序どおりに,同名のファイナルJavaクラスにマッピングします。ヌルコンストラクタも提供され,これによって構造体フィールドをあとで初期化することもできます。structのHolderクラスも生成されます。その名前は,次のようにsturctがマッピングされたJavaクラス名の後ろにHolderを付けたものです。

コードサンプル2-12 structのHolderクラス
final public class <class>Holder implements
      org.omg.CORBA.portable.Streamable {
    public <class> value;
    public <class>Holder( ) {}
    public <class>Holder(<class> initial) {...}
    public void _read(
                     org.omg.CORBA.portable.InputStream i)
    {...}
    public void _write(
                    org.omg.CORBA.portable.OutputStream o)
    {...}
    public org.omg.CORBA.TypeCode _type( ) {...}
}
コードサンプル2-13 IDL structのJavaへのマッピング
/*From Example.idl:*/
module Example {
    struct StructType {
        long field1;
        string field2;
    };
};
 
//generated Java
public final class StructType
        implements org.omg.CORBA.portable.IDLEntity {
    public int field1;
    public java.lang.String field2;
    public StructType( ){...}
    public StructType(final int field1,
    final java.lang.String field2){...}
    public java.lang.String toString( ) {...}
    public boolean equals(java.lang.Object o) {...}
}
public final class StructTypeHolder
        implements org.omg.CORBA.portable.Streamable {
    public Example.StructType value;
    public StructTypeHolder( ){...}
    public StructTypeHolder(
                      final Example.StructType _vis_value)
        {...}
    public void _read(
           final org.omg.CORBA.portable.InputStream input)
        {...}
    public void _write(
         final org.omg.CORBA.portable.OutputStream output)
        {...}
    public org.omg.CORBA.TypeCode _type ( ){...}
}