このクラスは,IRとIDLコンパイラが引数または属性の型を表すために使用します。Requestオブジェクトの中では,引数の型を指定する場合に,AnyクラスとともにTypeCodeオブジェクトも使用します。
C++の場合,TypeCodeオブジェクトは,kindとパラメタリストプロパティを持っています。コードサンプル17-16にTypeCodeクラスの例(C++)を示します。
Javaの場合,TypeCodeオブジェクトは,kindとパラメタリストプロパティを持っており,TCKindクラスで定義した値のどれかで表されます。コードサンプル17-17にTypeCodeクラスの例(Java)を示します。
表17-2に,TypeCodeオブジェクトの種類とパラメタを示します。
表17-2 TypeCodeの種類とパラメタ
種類 | パラメタリスト |
---|---|
tk_abstract_interface | repository_id,interface_name |
tk_alias | repository_id,alias_name,TypeCode |
tk_any | なし |
tk_array | length,TypeCode |
tk_boolean | なし |
tk_char | なし |
tk_double | なし |
tk_enum | repository_id,enum-name,enum-id1,enum-id2,…enum-idn |
tk_except | repository_id,exception_name,StructMembers |
tk_fixed | digits,scale |
tk_float | なし |
tk_long | なし |
tk_longdouble | なし |
tk_longlong | なし |
tk_native | id,name |
tk_null | なし |
tk_objref | repository_id,interface_id |
tk_octet | なし |
tk_Principal | なし |
tk_sequence | TypeCode,maxlen |
tk_short | なし |
tk_string | maxlen-integer |
tk_struct | repository_id,struct-name,{member1,TypeCode1},{membern,TypeCoden} |
tk_TypeCode | なし |
tk_ulong | なし |
tk_ulonglong | なし |
tk_union | repository_id,union-name,switch TypeCode,{label-value1,member-name1,TypeCode1},{label-valuen,member-namen,TypeCoden} |
tk_ushort | なし |
tk_value | repository_id,value_name,boxType |
tk_value_box | repository_id,value_name,typeModifier,concreteBase,members |
tk_void | なし |
tk_wchar | なし |
tk_wstring | なし |
class _VISEXPORT CORBA_TypeCode {
public:
. . .
// For all CORBA_TypeCode kinds
CORBA::Boolean equal(CORBA_TypeCode_ptr tc) const;
CORBA::Boolean equivalent(CORBA_TypeCode_ptr tc) const;
CORBA_TypeCode_ptr get_compact_typecode() const;
CORBA::TCKind kind() const // . . .
// For tk_objref, tk_struct, tk_union,
tk_enum, tk_alias and tk_except
virtual const char* id() const; // raises(BadKind);
virtual const char *name() const; // raises(BadKind);
// For tk_struct, tk_union, tk_enum and tk_except
virtual CORBA::ULong member_count() const;
// raises((BadKind));
virtual const char *member_name(
CORBA::ULong index) const;
// raises((BadKind, Bounds));
// For tk_struct, tk_union and tk_except
virtual CORBA_TypeCode_ptr member_type(
CORBA::ULong index) const;
// raises((BadKind, Bounds));
// For tk_union
virtual CORBA::Any_ptr member_label(
CORBA::ULong index) const;
// raises((BadKind, Bounds));
virtual CORBA_TypeCode_ptr discriminator_type() const;
// raises((BadKind));
virtual CORBA::Long default_index() const;
// raises((BadKind));
// For tk_string, tk_sequence and tk_array
virtual CORBA::ULong length() const; // raises(
(BadKind));
// For tk_sequence, tk_array and tk_alias
virtual CORBA_TypeCode_ptr content_type() const;
// raises((BadKind));
// For tk_fixed
virtual CORBA::UShort fixed_digits() const;
// raises (BadKind)
virtual CORBA::Short fixed_scale() const;
// raises (BadKind)
// for tk_value
virtual CORBA::Visibility member_visibility(
CORBA::ULong index)const;
//raises(BadKind, Bounds);
virtual CORBA::ValueModifier type_modifier() const;
// raises(BadKind);
virtual CORBA::TypeCode_ptr concrete_base_type() const;
// raises(BadKind);
};
public abstract class TypeCode extends java.lang.Object
implements org.omg.CORBA.portable.IDLEntity {
public abstract boolean equal(org.omg.CORBA.TypeCode tc);
public boolean equivalent(org.omg.CORBA.TypeCode tc);
public abstract org.omg.CORBA.TCKind kind();
public TypeCode get_compact_typecode();
public abstract java.lang.String id()
throws org.omg.CORBA.TypeCodePackage.BadKind;
public abstract java.lang.String name()
throws org.omg.CORBA.TypeCodePackage.BadKind;
public abstract int member_count()
throws org.omg.CORBA.TypeCodePackage.BadKind;
public abstract java.lang.String member_name(int index)
throws org.omg.CORBA.TypeCodePackage.BadKind,
org.omg.CORBA.TypeCodePackage.Bounds;
public abstract org.omg.CORBA.TypeCode member_type(
int index)
throws org.omg.CORBA.TypeCodePackage.BadKind,
org.omg.CORBA.TypeCodePackage.Bounds;
public abstract org.omg.CORBA.Any member_label(int index)
throws org.omg.CORBA.TypeCodePackage.BadKind,
org.omg.CORBA.TypeCodePackage.Bounds;
public abstract org.omg.CORBA.TypeCode
discriminator_type()
throws org.omg.CORBA.TypeCodePackage.BadKind;
public abstract int default_index()
throws org.omg.CORBA.TypeCodePackage.BadKind;
public abstract int length()
throws org.omg.CORBA.TypeCodePackage.BadKind;
public abstract org.omg.CORBA.TypeCode content_type()
throws org.omg.CORBA.TypeCodePackage.BadKind;
public short fixed_digits()
throws org.omg.CORBA.TypeCodePackage.BadKind;
public short fixed_scale()
throws org.omg.CORBA.TypeCodePackage.BadKind;
public short member_visibility(int index)
throws org.omg.CORBA.TypeCodePackage.BadKind,
org.omg.CORBA.Bounds;
public short type_modifier()
throws org.omg.CORBA.TypeCodePackage.BadKind;
public TypeCode concrete_base_type()
throws org.omg.CORBA.TypeCodePackage.BadKind;
}