/*
* Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package org.omg.CORBA;
import org.omg.CORBA.portable.InputStream;
import org.omg.CORBA.portable.OutputStream;
import org.omg.CORBA.portable.Streamable;
import org.omg.CORBA.portable.IDLEntity;
/**
* Serves as a container for any data that can be
* described in IDL or for any IDL primitive type.
* An Any
object is used as a component of a
* NamedValue
object, which provides information about
* arguments or return values in requests, and which is used to define
* name/value pairs in Context
objects.
*
* An Any
object consists of two parts:
*
TypeCode
object describing the type of the data
* value contained in the Any
object. For example,
* a TypeCode
object for an array contains
* a field for the length of the array and a field for
* the type of elements in the array. (Note that in this case, the
* second field of the TypeCode
object is itself a
* TypeCode
object.)
*
*
* A large part of the
* For a given primitive type X, these methods are:
*
* This method throws the exception
* There are distinct method pairs for each
* primitive IDL data type (
* The class
* Note that using this method to set the type code wipes out the
* value if there is one. The method
* is provided primarily so that the type may be set properly for
* IDL
* If this method is called on an
* Inserts the given
* Inserts the given Any
class consists of pairs of methods
* for inserting values into and extracting values from an
* Any
object.
*
*
*
* x
of primitive type X
* into the value
field of the Any
object.
* Note that the method
* insert_X
also resets the Any
object's
* type
field if necessary.
*
* X
from the Any
object.
*
* BAD_OPERATION
under two conditions:
*
*
* Any
object is not
* X
* extract_X
is called before
* the value
field of the Any
object
* has been set
* insert_long
and extract_long
,
* insert_string
and extract_string
, and so on).
* Any
also has methods for
* getting and setting the type code,
* for testing two Any
objects for equality,
* and for reading an Any
object from a stream or
* writing it to a stream.
*
* @since JDK1.2
*/
abstract public class Any implements IDLEntity {
/**
* Checks for equality between this Any
object and the
* given Any
object. Two Any
objects are
* equal if both their values and type codes are equal.
*
* @param a the Any
object to test for equality
* @return true
if the Any
objects are equal;
* false
otherwise
* @see CORBA
package
* comments for unimplemented features
*/
abstract public boolean equal(Any a);
/**
* Returns type information for the element contained in this
* Any
object.
*
* @return the TypeCode
object containing type information
* about the value contained in this Any
object
*/
abstract public TypeCode type();
/**
* Sets this Any
object's type
field
* to the given TypeCode
object and clears its value.
* out
parameters. Generally, setting the type
* is done by the insert_X
methods, which will set the type
* to X if it is not already set to X.
*
* @param t the TypeCode
object giving
* information for the value in
* this Any
object
*/
abstract public void type(TypeCode t);
///////////////////////////////////////////////////////////////////////////
// marshalling/unmarshalling routines
/**
* Reads off (unmarshals) the value of an Any
object from
* the given input stream using the given typecode.
*
* @param is the org.omg.CORBA.portable.InputStream
* object from which to read
* the value contained in this Any
object
*
* @param t a TypeCode
object containing type information
* about the value to be read
*
* @exception MARSHAL when the given TypeCode
object is
* not consistent with the value that was contained
* in the input stream
*/
abstract public void read_value(InputStream is, TypeCode t)
throws MARSHAL;
/**
* Writes out the value of this Any
object
* to the given output stream. If both typecode
* and value
need to be written, use
* create_output_stream()
to create an OutputStream
,
* then use write_any
on the OutputStream
.
* Any
object that has not
* had a value inserted into its value
field, it will throw
* the exception java.lang.NullPointerException
.
*
* @param os the org.omg.CORBA.portable.OutputStream
* object into which to marshal the value
* of this Any
object
*
*/
abstract public void write_value(OutputStream os);
/**
* Creates an output stream into which this Any
object's
* value can be marshalled.
*
* @return the newly-created OutputStream
*/
abstract public OutputStream create_output_stream();
/**
* Creates an input stream from which this Any
object's value
* can be unmarshalled.
*
* @return the newly-created InputStream
*/
abstract public InputStream create_input_stream();
///////////////////////////////////////////////////////////////////////////
// basic insertion/extraction methods
/**
* Extracts the short
in this
* Any
object's value
field.
*
* @return the short
stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a short
or the
* value
field has not yet been set
*/
abstract public short extract_short() throws BAD_OPERATION;
/**
* Inserts the given short
* into this Any
object's value
field.
*
* @param s the short
to insert into this
* Any
object
*/
abstract public void insert_short(short s);
/**
* Extracts the int
in this
* Any
object's value
field.
*
* @return the int
stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than an int
or the
* value
field has not yet been set
*/
abstract public int extract_long() throws BAD_OPERATION;
/**
* Inserts the given int
* into this Any
object's value
field.
*
* @param l the int
to insert into this
* Any
object
*/
abstract public void insert_long(int l);
/**
* Extracts the long
in this
* Any
object's value
field.
*
* @return the long
stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a long
or the
* value
field has not yet been set
*/
abstract public long extract_longlong() throws BAD_OPERATION;
/**
* Inserts the given long
* into this Any
object's value
field.
*
* @param l the long
to insert into this
* Any
object
*/
abstract public void insert_longlong(long l);
/**
* Extracts the short
in this
* Any
object's value
field.
*
* @return the short
stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a short
or the
* value
field has not yet been set
*/
abstract public short extract_ushort() throws BAD_OPERATION;
/**
* Inserts the given short
* into this Any
object's value
field.
*
* @param s the short
to insert into this
* Any
object
*/
abstract public void insert_ushort(short s);
/**
* Extracts the int
in this
* Any
object's value
field.
*
* @return the int
stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than an int
or the
* value
field has not yet been set
*/
abstract public int extract_ulong() throws BAD_OPERATION;
/**
* Inserts the given int
* into this Any
object's value
field.
*
* @param l the int
to insert into this
* Any
object
*/
abstract public void insert_ulong(int l);
/**
* Extracts the long
in this
* Any
object's value
field.
*
* @return the long
stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a long
or the
* value
field has not yet been set
*/
abstract public long extract_ulonglong() throws BAD_OPERATION;
/**
* Inserts the given long
* into this Any
object's value
field.
*
* @param l the long
to insert into this
* Any
object
*/
abstract public void insert_ulonglong(long l);
/**
* Extracts the float
in this
* Any
object's value
field.
*
* @return the float
stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a float
or the
* value
field has not yet been set
*/
abstract public float extract_float() throws BAD_OPERATION;
/**
* Inserts the given float
* into this Any
object's value
field.
*
* @param f the float
to insert into this
* Any
object
*/
abstract public void insert_float(float f);
/**
* Extracts the double
in this
* Any
object's value
field.
*
* @return the double
stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a double
or the
* value
field has not yet been set
*/
abstract public double extract_double() throws BAD_OPERATION;
/**
* Inserts the given double
* into this Any
object's value
field.
*
* @param d the double
to insert into this
* Any
object
*/
abstract public void insert_double(double d);
/**
* Extracts the boolean
in this
* Any
object's value
field.
*
* @return the boolean
stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a boolean
or the
* value
field has not yet been set
*/
abstract public boolean extract_boolean() throws BAD_OPERATION;
/**
* Inserts the given boolean
* into this Any
object's value
field.
*
* @param b the boolean
to insert into this
* Any
object
*/
abstract public void insert_boolean(boolean b);
/**
* Extracts the char
in this
* Any
object's value
field.
*
* @return the char
stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a char
or the
* value
field has not yet been set
*/
abstract public char extract_char() throws BAD_OPERATION;
/**
* Inserts the given char
* into this Any
object's value
field.
*
* @param c the char
to insert into this
* Any
object
* @exception DATA_CONVERSION if there is a data conversion
* error
*/
abstract public void insert_char(char c) throws DATA_CONVERSION;
/**
* Extracts the char
in this
* Any
object's value
field.
*
* @return the char
stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a char
or the
* value
field has not yet been set
*/
abstract public char extract_wchar() throws BAD_OPERATION;
/**
* Inserts the given char
* into this Any
object's value
field.
*
* @param c the char
to insert into this
* Any
object
*/
abstract public void insert_wchar(char c);
/**
* Extracts the byte
in this
* Any
object's value
field.
*
* @return the byte
stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a byte
or the
* value
field has not yet been set
*/
abstract public byte extract_octet() throws BAD_OPERATION;
/**
* Inserts the given byte
* into this Any
object's value
field.
*
* @param b the byte
to insert into this
* Any
object
*/
abstract public void insert_octet(byte b);
/**
* Extracts the Any
object in this
* Any
object's value
field.
*
* @return the Any
object stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than an Any
object or the
* value
field has not yet been set
*/
abstract public Any extract_any() throws BAD_OPERATION;
/**
* Inserts the given Any
object
* into this Any
object's value
field.
*
* @param a the Any
object to insert into this
* Any
object
*/
abstract public void insert_any(Any a);
/**
* Extracts the org.omg.CORBA.Object
in this
* Any
object's value
field.
*
* @return the org.omg.CORBA.Object
stored in
* this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than an
* org.omg.CORBA.Object
or the
* value
field has not yet been set
*/
abstract public org.omg.CORBA.Object extract_Object() throws BAD_OPERATION;
/**
* Inserts the given org.omg.CORBA.Object
object
* into this Any
object's value
field.
*
* @param o the org.omg.CORBA.Object
object to insert into this
* Any
object
*/
abstract public void insert_Object(org.omg.CORBA.Object o);
/**
* Extracts the java.io.Serializable
object in this
* Any
object's value
field.
*
* @return the java.io.Serializable
object stored in
* this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a java.io.Serializable
* object or the
* value
field has not yet been set
*/
abstract public java.io.Serializable extract_Value() throws BAD_OPERATION ;
/**
* Inserts the given java.io.Serializable
object
* into this Any
object's value
field.
*
* @param v the java.io.Serializable
object to insert into this
* Any
object
*/
abstract public void insert_Value(java.io.Serializable v) ;
/**
* Inserts the given java.io.Serializable
object
* into this Any
object's value
field.
*
* @param v the java.io.Serializable
object to insert into this
* Any
object
* @param t the TypeCode
object that is to be inserted into
* this Any
object's type
field
* and that describes the java.io.Serializable
* object being inserted
* @throws MARSHAL if the ORB has a problem marshalling or
* unmarshalling parameters
*/
abstract public void insert_Value(java.io.Serializable v, TypeCode t)
throws MARSHAL ;
/**
* Inserts the given org.omg.CORBA.Object
object
* into this Any
object's value
field.
*
* @param o the org.omg.CORBA.Object
instance to insert into this
* Any
object
* @param t the TypeCode
object that is to be inserted into
* this Any
object and that describes
* the Object
being inserted
* @exception BAD_OPERATION if this method is invalid for this
* Any
object
*
*/
abstract public void insert_Object(org.omg.CORBA.Object o, TypeCode t)
throws BAD_PARAM;
/**
* Extracts the String
object in this
* Any
object's value
field.
*
* @return the String
object stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a String
object or the
* value
field has not yet been set
*/
abstract public String extract_string() throws BAD_OPERATION;
/**
* Inserts the given String
object
* into this Any
object's value
field.
*
* @param s the String
object to insert into this
* Any
object
* @exception DATA_CONVERSION if there is a data conversion error
* @exception MARSHAL if the ORB has a problem marshalling or
* unmarshalling parameters
*/
abstract public void insert_string(String s) throws DATA_CONVERSION, MARSHAL;
/**
* Extracts the String
object in this
* Any
object's value
field.
*
* @return the String
object stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a String
object or the
* value
field has not yet been set
*/
abstract public String extract_wstring() throws BAD_OPERATION;
/**
* Inserts the given String
object
* into this Any
object's value
field.
*
* @param s the String
object to insert into this
* Any
object
* @exception MARSHAL if the ORB has a problem marshalling or
* unmarshalling parameters
*/
abstract public void insert_wstring(String s) throws MARSHAL;
/**
* Extracts the TypeCode
object in this
* Any
object's value
field.
*
* @return the TypeCode
object stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a TypeCode
object or the
* value
field has not yet been set
*/
abstract public TypeCode extract_TypeCode() throws BAD_OPERATION;
/**
* Inserts the given TypeCode
object
* into this Any
object's value
field.
*
* @param t the TypeCode
object to insert into this
* Any
object
*/
abstract public void insert_TypeCode(TypeCode t);
/**
* Extracts the Principal
object in this
* Any
object's value
field.
* Note that the class Principal
has been deprecated.
*
* @return the Principal
object stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a
* Principal
object or the
* value
field has not yet been set
* @see CORBA
package
* comments for unimplemented features
* @deprecated Deprecated by CORBA 2.2.
*/
@Deprecated
public Principal extract_Principal() throws BAD_OPERATION {
throw new org.omg.CORBA.NO_IMPLEMENT() ;
}
/**
* Inserts the given Principal
object
* into this Any
object's value
field.
* Note that the class Principal
has been deprecated.
*
* @param p the Principal
object to insert into this
* Any
object
* @see CORBA
package
* comments for unimplemented features
* @deprecated Deprecated by CORBA 2.2.
*/
@Deprecated
public void insert_Principal(Principal p) {
throw new org.omg.CORBA.NO_IMPLEMENT() ;
}
///////////////////////////////////////////////////////////////////////////
// insertion/extraction of streamables
/**
* Extracts a Streamable
from this Any
object's
* value
field. This method allows the extraction of
* non-primitive IDL types.
*
* @return the Streamable
stored in the Any
object.
* @throws BAD_INV_ORDER if the caller has invoked operations in the wrong order
* @see CORBA
package
* comments for unimplemented features
*/
public org.omg.CORBA.portable.Streamable extract_Streamable()
throws org.omg.CORBA.BAD_INV_ORDER {
throw new org.omg.CORBA.NO_IMPLEMENT() ;
}
/**
* Inserts the given Streamable
object
* into this Any
object's value
field.
* This method allows the insertion of non-primitive IDL types.
*
* @param s the Streamable
object to insert into this
* Any
object; may be a non-primitive
* IDL type
* @see CORBA
package
* comments for unimplemented features
*/
public void insert_Streamable(Streamable s) {
throw new org.omg.CORBA.NO_IMPLEMENT() ;
}
/**
* Extracts the java.math.BigDecimal
object in this
* Any
object's value
field.
*
* @return the java.math.BigDecimal
object
* stored in this Any
object
* @exception BAD_OPERATION if this Any
object
* contains something other than a
* java.math.BigDecimal
object or the
* value
field has not yet been set
* @see CORBA
package
* comments for unimplemented features
*/
public java.math.BigDecimal extract_fixed() {
throw new org.omg.CORBA.NO_IMPLEMENT();
}
/**
* Throws an
* org.omg.CORBA.NO_IMPLEMENT
exception.
* java.math.BigDecimal
object
* into this Any
object's value
field.
*
* @param value the java.math.BigDecimal
object
* to insert into this Any
object
* @see CORBA
package
* comments for unimplemented features
*/
public void insert_fixed(java.math.BigDecimal value) {
throw new org.omg.CORBA.NO_IMPLEMENT();
}
/**
* Throws an
* org.omg.CORBA.NO_IMPLEMENT
exception.
* java.math.BigDecimal
object
* into this Any
object's value
field.
*
* @param value the java.math.BigDecimal
object
* to insert into this Any
object
* @param type the TypeCode
object that is to be inserted into
* this Any
object's type
field
* and that describes the java.math.BigDecimal
* object being inserted
* @throws org.omg.CORBA.BAD_INV_ORDER if this method is invoked improperly
* @see CORBA
package
* comments for unimplemented features
*/
public void insert_fixed(java.math.BigDecimal value, org.omg.CORBA.TypeCode type)
throws org.omg.CORBA.BAD_INV_ORDER
{
throw new org.omg.CORBA.NO_IMPLEMENT();
}
}