Module  java.corba
软件包  org.omg.CORBA

Class Any

  • All Implemented Interfaces:
    SerializableIDLEntity


    public abstract class Any
    extends Object
    implements IDLEntity
    作为可以在IDL或任何IDL原语类型中描述的任何数据的容器。 一个Any对象用作的一个组件NamedValue对象,它提供了有关请求参数或返回值的信息,并且用于在定义的名称/值对Context对象。

    一个Any对象由两部分组成:

    1. 一个数据值
    2. 描述TypeCode对象中包含的数据值的类型的Any对象。 例如,数组的一个TypeCode对象包含数组长度的字段和数组中元素类型的一个字段。 (请注意,在这种情况下, TypeCode对象的第二个字段本身就是一个TypeCode对象。)

    Any类中的很大一部分由用于在Any对象中插入值并从中提取值的方法组成。

    对于给定的原始类型X,这些方法是:

    void insert_X(X x)
    该方法允许将原始类型X的实例x插入到Any对象的value字段中。 请注意,如果需要,方法insert_X还会重置Any对象的type字段。
    X extract_X()
    该方法允许从Any对象提取类型为X的实例。

    这种方法在两个条件下抛出异常BAD_OPERATION

    1. Any对象中包含的元素的类型不是X
    2. Any对象的value字段已被设置之前调用方法extract_X

    有用于每个基本IDL数据类型(不同的方法对insert_longextract_longinsert_stringextract_string ,等等)。

    Any类还具有获取和设置类型代码的方法,用于测试两个Any对象的相等性,以及从流中读取Any对象或将其写入流。

    从以下版本开始:
    JDK1.2
    • 构造方法详细信息

      • Any

        public Any​()
    • 方法详细信息

      • equal

        public abstract boolean equal​(Any a)
        检查此Any对象与给定的Any对象之间是否相等。 如果两个Any对象的值和类型代码相等,则它们是相等的。
        参数
        a - Any对象测试相等
        结果
        true如果Any对象相等; 否则为false
        另请参见:
        CORBA package comments for unimplemented features
      • type

        public abstract TypeCode type​()
        返回此 Any对象中包含的元素的类型信息。
        结果
        TypeCode对象包含有关此 Any对象中包含的值的类型信息
      • type

        public abstract void type​(TypeCode t)
        将此Any对象的type字段设置为给定的TypeCode对象,并清除其值。

        请注意,使用此方法设置类型代码会擦除值,如果有的话。 主要提供该方法,以便为IDL out参数设置适当的类型。 一般来说,设置类型是由insert_X方法完成的,如果尚未设置为X,则将其设置为X。

        参数
        t - 提供 TypeCode对象中的值的信息的 Any对象
      • read_value

        public abstract void read_value​(InputStream is,
                                        TypeCode t)
                                 throws MARSHAL
        使用给定的类型代码从给定的输入流中读取(解组)一个 Any对象的值。
        参数
        is -所述 org.omg.CORBA.portable.InputStream从中读取包含在该值对象 Any对象
        t - 一个 TypeCode对象,其中包含有关要读取的值的类型信息
        异常
        MARSHAL - 当给定的 TypeCode对象与输入流中包含的值不一致时
      • write_value

        public abstract void write_value​(OutputStream os)
        将此Any对象的值写入给定的输出流。 如果需要写入typecodevalue ,请使用create_output_stream()创建一个OutputStream ,然后在write_any上使用OutputStream

        如果在一个Any对象上调用了该方法,该对象尚未将值插入其value字段中,则会抛出异常java.lang.NullPointerException

        参数
        os -所述 org.omg.CORBA.portable.OutputStream对象到其中的这个编组的值 Any对象
      • create_output_stream

        public abstract OutputStream create_output_stream​()
        创建可以编组此 Any对象值的输出流。
        结果
        新创 OutputStream
      • create_input_stream

        public abstract InputStream create_input_stream​()
        创建一个输入流,从中可以 AnyAny对象的值。
        结果
        新创 InputStream
      • extract_short

        public abstract short extract_short​()
                                     throws BAD_OPERATION
        提取 short在此 Any对象 value场。
        结果
        short存储在这个 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 Any以外的其他 shortvalue字段尚未设置
      • insert_short

        public abstract void insert_short​(short s)
        将给定的 short插入到这个 Any对象的 value字段中。
        参数
        s - 将 short插入此 Any对象
      • extract_long

        public abstract int extract_long​()
                                  throws BAD_OPERATION
        提取 int在此 Any对象 value场。
        结果
        int存储在此 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 intvalue字段之外的其他对象尚未设置
      • insert_long

        public abstract void insert_long​(int l)
        将给定的 int插入到这个 Any对象的 value字段中。
        参数
        l - int插入这个 Any对象
      • extract_longlong

        public abstract long extract_longlong​()
                                       throws BAD_OPERATION
        提取 long在此 Any对象 value场。
        结果
        long存储在此 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 longvalue字段尚未设置的内容
      • insert_longlong

        public abstract void insert_longlong​(long l)
        将给定的 long插入到这个 Any对象的 value字段中。
        参数
        l - 该 long插入到这个 Any对象
      • extract_ushort

        public abstract short extract_ushort​()
                                      throws BAD_OPERATION
        提取 short在此 Any对象 value场。
        结果
        short存储在此 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 shortvalue字段尚未设置的内容
      • insert_ushort

        public abstract void insert_ushort​(short s)
        将给定的 short插入到这个 Any对象的 value字段中。
        参数
        s - 该 short插入到这个 Any对象
      • extract_ulong

        public abstract int extract_ulong​()
                                   throws BAD_OPERATION
        提取 int在此 Any对象 value场。
        结果
        int存储在此 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 intvalue字段尚未设置的内容
      • insert_ulong

        public abstract void insert_ulong​(int l)
        将给定的 int插入到这个 Any对象的 value字段中。
        参数
        l - 该 int插入此 Any对象
      • extract_ulonglong

        public abstract long extract_ulonglong​()
                                        throws BAD_OPERATION
        提取 long在此 Any对象 value场。
        结果
        long存储在这个 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 longvalue字段尚未设置的对象
      • insert_ulonglong

        public abstract void insert_ulonglong​(long l)
        将给定的 long插入到这个 Any对象的 value字段中。
        参数
        l - long插入这个 Any对象
      • extract_float

        public abstract float extract_float​()
                                     throws BAD_OPERATION
        提取 float在此 Any对象 value场。
        结果
        float存储在此 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 floatvalue字段之外的其他对象尚未设置
      • insert_float

        public abstract void insert_float​(float f)
        将给定的 float插入到这个 Any对象的 value字段中。
        参数
        f - float插入这个 Any对象
      • extract_double

        public abstract double extract_double​()
                                       throws BAD_OPERATION
        提取 double在此 Any对象 value场。
        结果
        double存储在此 Any对象中
        异常
        BAD_OPERATION -如果此 Any对象包含比其他东西 double或者 value领域尚未设置
      • insert_double

        public abstract void insert_double​(double d)
        将给定的 double插入到这个 Any对象的 value字段中。
        参数
        d - double插入这个 Any对象
      • extract_boolean

        public abstract boolean extract_boolean​()
                                         throws BAD_OPERATION
        提取 boolean在此 Any对象 value场。
        结果
        boolean存储在此 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 Any以外的其他 booleanvalue字段尚未设置
      • insert_boolean

        public abstract void insert_boolean​(boolean b)
        将给定的 boolean插入到这个 Any对象的 value字段中。
        参数
        b - boolean插入到这个 Any对象
      • extract_char

        public abstract char extract_char​()
                                   throws BAD_OPERATION
        提取 char在此 Any对象 value场。
        结果
        char存储在此 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 charvalue字段尚未设置的内容
      • insert_char

        public abstract void insert_char​(char c)
                                  throws DATA_CONVERSION
        将给定的 char插入到这个 Any对象的 value字段中。
        参数
        c - 将 char插入此 Any对象
        异常
        DATA_CONVERSION - 如果有数据转换错误
      • extract_wchar

        public abstract char extract_wchar​()
                                    throws BAD_OPERATION
        提取 char在此 Any对象 value场。
        结果
        char存储在此 Any对象中
        异常
        BAD_OPERATION -如果此 Any对象包含比其他东西 char或者 value领域尚未设置
      • insert_wchar

        public abstract void insert_wchar​(char c)
        将给定的 char插入到这个 Any对象的 value字段中。
        参数
        c - char插入到这个 Any对象
      • extract_octet

        public abstract byte extract_octet​()
                                    throws BAD_OPERATION
        提取 byte在此 Any对象 value场。
        结果
        byte存储在此 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含一个 bytevalue字段尚未设置的内容
      • insert_octet

        public abstract void insert_octet​(byte b)
        将给定的 byte插入到这个 Any对象的 value字段中。
        参数
        b - 将 byte插入到这个 Any对象中
      • extract_any

        public abstract Any extract_any​()
                                 throws BAD_OPERATION
        Any对象的 value字段中提取 Any对象。
        结果
        Any对象存储在此 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 Any对象以外的 Any或者 value字段尚未设置
      • insert_any

        public abstract void insert_any​(Any a)
        将给定的 Any对象插入到此 Any对象的 value字段中。
        参数
        a - 将 Any对象插入到这个 Any对象中
      • extract_Object

        public abstract Object extract_Object​()
                                       throws BAD_OPERATION
        提取 org.omg.CORBA.Object在此 Any对象 value场。
        结果
        org.omg.CORBA.Object存储在此 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 org.omg.CORBA.Objectvalue字段之外的其他对象尚未设置
      • insert_Object

        public abstract void insert_Object​(Object o)
        将给定的 org.omg.CORBA.Object对象插入到此 Any对象的 value字段中。
        参数
        o - 将 org.omg.CORBA.Object对象插入到这个 Any对象中
      • extract_Value

        public abstract Serializable extract_Value​()
                                            throws BAD_OPERATION
        Any对象的 value字段中提取 java.io.Serializable对象。
        结果
        java.io.Serializable对象存储在这个 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 Any对象以外的 java.io.Serializable对象或 value字段尚未设置
      • insert_Value

        public abstract void insert_Value​(Serializable v)
        将给定的 java.io.Serializable对象插入到此 Any对象的 value字段中。
        参数
        v - 该 java.io.Serializable对象插入到这个 Any对象
      • insert_Value

        public abstract void insert_Value​(Serializable v,
                                          TypeCode t)
                                   throws MARSHAL
        将给定的 java.io.Serializable对象插入到此 Any对象的 value字段中。
        参数
        v - 将 java.io.Serializable对象插入到这个 Any对象中
        t -所述 TypeCode对象,它是要插入到本 Any对象的 type字段和描述 java.io.Serializable被插入对象
        异常
        MARSHAL - 如果ORB编组或解组参数有问题
      • insert_Object

        public abstract void insert_Object​(Object o,
                                           TypeCode t)
                                    throws BAD_PARAM
        将给定的 org.omg.CORBA.Object对象插入到此 Any对象的 value字段中。
        参数
        o - org.omg.CORBA.Object实例插入到这个 Any对象
        t -所述 TypeCode对象,它是将被插入到这个 Any对象和描述该 Object被插入
        异常
        BAD_OPERATION - 如果此方法对该 Any对象无效
        BAD_PARAM
      • extract_string

        public abstract String extract_string​()
                                       throws BAD_OPERATION
        在此 Any对象的 value字段中提取 String对象。
        结果
        String对象存储在这个 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含一个 String对象或 value字段尚未设置的对象
      • insert_string

        public abstract void insert_string​(String s)
                                    throws DATA_CONVERSION,
                                           MARSHAL
        将给定的 String对象插入到此 Any对象的 value字段中。
        参数
        s - 将 String对象插入到这个 Any对象中
        异常
        DATA_CONVERSION - 如果有数据转换错误
        MARSHAL - 如果ORB编组或解组参数有问题
      • extract_wstring

        public abstract String extract_wstring​()
                                        throws BAD_OPERATION
        在此 Any对象的 value字段中提取 String对象。
        结果
        String对象存储在此 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 Any对象以外的 String对象或 value字段尚未设置
      • insert_wstring

        public abstract void insert_wstring​(String s)
                                     throws MARSHAL
        将给定的 String对象插入到此 Any对象的 value字段中。
        参数
        s - 将 String对象插入到这个 Any对象中
        异常
        MARSHAL - 如果ORB编组或解组参数有问题
      • extract_TypeCode

        public abstract TypeCode extract_TypeCode​()
                                           throws BAD_OPERATION
        Any对象的 value字段中提取 TypeCode对象。
        结果
        TypeCode对象存储在这个 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 Any对象以外的 TypeCode对象或 value字段尚未设置
      • insert_TypeCode

        public abstract void insert_TypeCode​(TypeCode t)
        将给定的 TypeCode对象插入到此 Any对象的 value字段中。
        参数
        t - 将 TypeCode对象插入到这个 Any对象中
      • insert_Streamable

        public void insert_Streamable​(Streamable s)
        将给定的Streamable对象插入到此Any对象的value字段中。 该方法允许插入非原始IDL类型。
        参数
        s - 将Streamable对象插入到这个Any对象中; 可能是非原始的IDL类型
        另请参见:
        CORBA package comments for unimplemented features
      • extract_fixed

        public BigDecimal extract_fixed​()
        在此 Any对象的 value字段中提取 java.math.BigDecimal对象。
        结果
        java.math.BigDecimal对象存储在此 Any对象中
        异常
        BAD_OPERATION - 如果此 Any对象包含 Any对象以外的 java.math.BigDecimal对象或 value字段尚未设置
        另请参见:
        CORBA package comments for unimplemented features