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 ( ){...}
}