Interface DynAny

All Superinterfaces:
DynAnyOperations sample code for org.omg.DynamicAny.DynAnyOperations definition code for org.omg.DynamicAny.DynAnyOperations , IDLEntity sample code for org.omg.CORBA.portable.IDLEntity definition code for org.omg.CORBA.portable.IDLEntity , Object sample code for org.omg.CORBA.Object definition code for org.omg.CORBA.Object , Serializable sample code for definition code for
All Known Subinterfaces:
DynArray sample code for org.omg.DynamicAny.DynArray definition code for org.omg.DynamicAny.DynArray , DynEnum sample code for org.omg.DynamicAny.DynEnum definition code for org.omg.DynamicAny.DynEnum , DynFixed sample code for org.omg.DynamicAny.DynFixed definition code for org.omg.DynamicAny.DynFixed , DynSequence sample code for org.omg.DynamicAny.DynSequence definition code for org.omg.DynamicAny.DynSequence , DynStruct sample code for org.omg.DynamicAny.DynStruct definition code for org.omg.DynamicAny.DynStruct , DynUnion sample code for org.omg.DynamicAny.DynUnion definition code for org.omg.DynamicAny.DynUnion , DynValue sample code for org.omg.DynamicAny.DynValue definition code for org.omg.DynamicAny.DynValue , DynValueBox sample code for org.omg.DynamicAny.DynValueBox definition code for org.omg.DynamicAny.DynValueBox , DynValueCommon sample code for org.omg.DynamicAny.DynValueCommon definition code for org.omg.DynamicAny.DynValueCommon
All Known Implementing Classes:
_DynAnyStub sample code for org.omg.DynamicAny._DynAnyStub definition code for org.omg.DynamicAny._DynAnyStub , _DynArrayStub sample code for org.omg.DynamicAny._DynArrayStub definition code for org.omg.DynamicAny._DynArrayStub , _DynEnumStub sample code for org.omg.DynamicAny._DynEnumStub definition code for org.omg.DynamicAny._DynEnumStub , _DynFixedStub sample code for org.omg.DynamicAny._DynFixedStub definition code for org.omg.DynamicAny._DynFixedStub , _DynSequenceStub sample code for org.omg.DynamicAny._DynSequenceStub definition code for org.omg.DynamicAny._DynSequenceStub , _DynStructStub sample code for org.omg.DynamicAny._DynStructStub definition code for org.omg.DynamicAny._DynStructStub , _DynUnionStub sample code for org.omg.DynamicAny._DynUnionStub definition code for org.omg.DynamicAny._DynUnionStub , _DynValueStub sample code for org.omg.DynamicAny._DynValueStub definition code for org.omg.DynamicAny._DynValueStub

public interface DynAny
extends DynAnyOperations sample code for org.omg.DynamicAny.DynAnyOperations definition code for org.omg.DynamicAny.DynAnyOperations , Object sample code for org.omg.CORBA.Object definition code for org.omg.CORBA.Object , IDLEntity sample code for org.omg.CORBA.portable.IDLEntity definition code for org.omg.CORBA.portable.IDLEntity

Any values can be dynamically interpreted (traversed) and constructed through DynAny objects. A DynAny object is associated with a data value which corresponds to a copy of the value inserted into an any.

A DynAny object may be viewed as an ordered collection of component DynAnys. For DynAnys representing a basic type, such as long, or a type without components, such as an empty exception, the ordered collection of components is empty. Each DynAny object maintains the notion of a current position into its collection of component DynAnys. The current position is identified by an index value that runs from 0 to n-1, where n is the number of components. The special index value -1 indicates a current position that points nowhere. For values that cannot have a current position (such as an empty exception), the index value is fixed at -1. If a DynAny is initialized with a value that has components, the index is initialized to 0. After creation of an uninitialized DynAny (that is, a DynAny that has no value but a TypeCode that permits components), the current position depends on the type of value represented by the DynAny. (The current position is set to 0 or -1, depending on whether the new DynAny gets default values for its components.)

The iteration operations rewind, seek, and next can be used to change the current position and the current_component operation returns the component at the current position. The component_count operation returns the number of components of a DynAny. Collectively, these operations enable iteration over the components of a DynAny, for example, to (recursively) examine its contents.

A constructed DynAny object is a DynAny object associated with a constructed type. There is a different interface, inheriting from the DynAny interface, associated with each kind of constructed type in IDL (fixed, enum, struct, sequence, union, array, exception, and value type).

A constructed DynAny object exports operations that enable the creation of new DynAny objects, each of them associated with a component of the constructed data value. As an example, a DynStruct is associated with a struct value. This means that the DynStruct may be seen as owning an ordered collection of components, one for each structure member. The DynStruct object exports operations that enable the creation of new DynAny objects, each of them associated with a member of the struct.

If a DynAny object has been obtained from another (constructed) DynAny object, such as a DynAny representing a structure member that was created from a DynStruct, the member DynAny is logically contained in the DynStruct. Calling an insert or get operation leaves the current position unchanged. Destroying a top-level DynAny object (one that was not obtained as a component of another DynAny) also destroys any component DynAny objects obtained from it. Destroying a non-top level DynAny object does nothing. Invoking operations on a destroyed top-level DynAny or any of its descendants raises OBJECT_NOT_EXIST. If the programmer wants to destroy a DynAny object but still wants to manipulate some component of the data value associated with it, then he or she should first create a DynAny for the component and, after that, make a copy of the created DynAny object.

The behavior of DynAny objects has been defined in order to enable efficient implementations in terms of allocated memory space and speed of access. DynAny objects are intended to be used for traversing values extracted from anys or constructing values of anys at runtime. Their use for other purposes is not recommended.

Insert and get operations are necessary to handle basic DynAny objects but are also helpful to handle constructed DynAny objects. Inserting a basic data type value into a constructed DynAny object implies initializing the current component of the constructed data value associated with the DynAny object. For example, invoking insert_boolean on a DynStruct implies inserting a boolean data value at the current position of the associated struct data value. A type is consistent for inserting or extracting a value if its TypeCode is equivalent to the TypeCode contained in the DynAny or, if the DynAny has components, is equivalent to the TypeCode of the DynAny at the current position.

DynAny and DynAnyFactory objects are intended to be local to the process in which they are created and used. This means that references to DynAny and DynAnyFactory objects cannot be exported to other processes, or externalized with ORB.object_to_string(). If any attempt is made to do so, the offending operation will raise a MARSHAL system exception. Since their interfaces are specified in IDL, DynAny objects export operations defined in the standard org.omg.CORBA.Object interface. However, any attempt to invoke operations exported through the Object interface may raise the standard NO_IMPLEMENT exception. An attempt to use a DynAny object with the DII may raise the NO_IMPLEMENT exception.

Method Summary
Methods inherited from interface org.omg.DynamicAny.DynAnyOperations sample code for org.omg.DynamicAny.DynAnyOperations definition code for org.omg.DynamicAny.DynAnyOperations
assign sample code for org.omg.DynamicAny.DynAnyOperations.assign(org.omg.DynamicAny.DynAny) definition code for org.omg.DynamicAny.DynAnyOperations.assign(org.omg.DynamicAny.DynAny) , component_count sample code for org.omg.DynamicAny.DynAnyOperations.component_count() definition code for org.omg.DynamicAny.DynAnyOperations.component_count() , copy sample code for org.omg.DynamicAny.DynAnyOperations.copy() definition code for org.omg.DynamicAny.DynAnyOperations.copy() , current_component sample code for org.omg.DynamicAny.DynAnyOperations.current_component() definition code for org.omg.DynamicAny.DynAnyOperations.current_component() , destroy sample code for org.omg.DynamicAny.DynAnyOperations.destroy() definition code for org.omg.DynamicAny.DynAnyOperations.destroy() , equal sample code for org.omg.DynamicAny.DynAnyOperations.equal(org.omg.DynamicAny.DynAny) definition code for org.omg.DynamicAny.DynAnyOperations.equal(org.omg.DynamicAny.DynAny) , from_any sample code for org.omg.DynamicAny.DynAnyOperations.from_any(org.omg.CORBA.Any) definition code for org.omg.DynamicAny.DynAnyOperations.from_any(org.omg.CORBA.Any) , get_any sample code for org.omg.DynamicAny.DynAnyOperations.get_any() definition code for org.omg.DynamicAny.DynAnyOperations.get_any() , get_boolean sample code for org.omg.DynamicAny.DynAnyOperations.get_boolean() definition code for org.omg.DynamicAny.DynAnyOperations.get_boolean() , get_char sample code for org.omg.DynamicAny.DynAnyOperations.get_char() definition code for org.omg.DynamicAny.DynAnyOperations.get_char() , get_double sample code for org.omg.DynamicAny.DynAnyOperations.get_double() definition code for org.omg.DynamicAny.DynAnyOperations.get_double() , get_dyn_any sample code for org.omg.DynamicAny.DynAnyOperations.get_dyn_any() definition code for org.omg.DynamicAny.DynAnyOperations.get_dyn_any() , get_float sample code for org.omg.DynamicAny.DynAnyOperations.get_float() definition code for org.omg.DynamicAny.DynAnyOperations.get_float() , get_long sample code for org.omg.DynamicAny.DynAnyOperations.get_long() definition code for org.omg.DynamicAny.DynAnyOperations.get_long() , get_longlong sample code for org.omg.DynamicAny.DynAnyOperations.get_longlong() definition code for org.omg.DynamicAny.DynAnyOperations.get_longlong() , get_octet sample code for org.omg.DynamicAny.DynAnyOperations.get_octet() definition code for org.omg.DynamicAny.DynAnyOperations.get_octet() , get_reference sample code for org.omg.DynamicAny.DynAnyOperations.get_reference() definition code for org.omg.DynamicAny.DynAnyOperations.get_reference() , get_short sample code for org.omg.DynamicAny.DynAnyOperations.get_short() definition code for org.omg.DynamicAny.DynAnyOperations.get_short() , get_string sample code for org.omg.DynamicAny.DynAnyOperations.get_string() definition code for org.omg.DynamicAny.DynAnyOperations.get_string() , get_typecode sample code for org.omg.DynamicAny.DynAnyOperations.get_typecode() definition code for org.omg.DynamicAny.DynAnyOperations.get_typecode() , get_ulong sample code for org.omg.DynamicAny.DynAnyOperations.get_ulong() definition code for org.omg.DynamicAny.DynAnyOperations.get_ulong() , get_ulonglong sample code for org.omg.DynamicAny.DynAnyOperations.get_ulonglong() definition code for org.omg.DynamicAny.DynAnyOperations.get_ulonglong() , get_ushort sample code for org.omg.DynamicAny.DynAnyOperations.get_ushort() definition code for org.omg.DynamicAny.DynAnyOperations.get_ushort() , get_val sample code for org.omg.DynamicAny.DynAnyOperations.get_val() definition code for org.omg.DynamicAny.DynAnyOperations.get_val() , get_wchar sample code for org.omg.DynamicAny.DynAnyOperations.get_wchar() definition code for org.omg.DynamicAny.DynAnyOperations.get_wchar() , get_wstring sample code for org.omg.DynamicAny.DynAnyOperations.get_wstring() definition code for org.omg.DynamicAny.DynAnyOperations.get_wstring() , insert_any sample code for org.omg.DynamicAny.DynAnyOperations.insert_any(org.omg.CORBA.Any) definition code for org.omg.DynamicAny.DynAnyOperations.insert_any(org.omg.CORBA.Any) , insert_boolean sample code for org.omg.DynamicAny.DynAnyOperations.insert_boolean(boolean) definition code for org.omg.DynamicAny.DynAnyOperations.insert_boolean(boolean) , insert_char sample code for org.omg.DynamicAny.DynAnyOperations.insert_char(char) definition code for org.omg.DynamicAny.DynAnyOperations.insert_char(char) , insert_double sample code for org.omg.DynamicAny.DynAnyOperations.insert_double(double) definition code for org.omg.DynamicAny.DynAnyOperations.insert_double(double) , insert_dyn_any sample code for org.omg.DynamicAny.DynAnyOperations.insert_dyn_any(org.omg.DynamicAny.DynAny) definition code for org.omg.DynamicAny.DynAnyOperations.insert_dyn_any(org.omg.DynamicAny.DynAny) , insert_float sample code for org.omg.DynamicAny.DynAnyOperations.insert_float(float) definition code for org.omg.DynamicAny.DynAnyOperations.insert_float(float) , insert_long sample code for org.omg.DynamicAny.DynAnyOperations.insert_long(int) definition code for org.omg.DynamicAny.DynAnyOperations.insert_long(int) , insert_longlong sample code for org.omg.DynamicAny.DynAnyOperations.insert_longlong(long) definition code for org.omg.DynamicAny.DynAnyOperations.insert_longlong(long) , insert_octet sample code for org.omg.DynamicAny.DynAnyOperations.insert_octet(byte) definition code for org.omg.DynamicAny.DynAnyOperations.insert_octet(byte) , insert_reference sample code for org.omg.DynamicAny.DynAnyOperations.insert_reference(org.omg.CORBA.Object) definition code for org.omg.DynamicAny.DynAnyOperations.insert_reference(org.omg.CORBA.Object) , insert_short sample code for org.omg.DynamicAny.DynAnyOperations.insert_short(short) definition code for org.omg.DynamicAny.DynAnyOperations.insert_short(short) , insert_string sample code for org.omg.DynamicAny.DynAnyOperations.insert_string(java.lang.String) definition code for org.omg.DynamicAny.DynAnyOperations.insert_string(java.lang.String) , insert_typecode sample code for org.omg.DynamicAny.DynAnyOperations.insert_typecode(org.omg.CORBA.TypeCode) definition code for org.omg.DynamicAny.DynAnyOperations.insert_typecode(org.omg.CORBA.TypeCode) , insert_ulong sample code for org.omg.DynamicAny.DynAnyOperations.insert_ulong(int) definition code for org.omg.DynamicAny.DynAnyOperations.insert_ulong(int) , insert_ulonglong sample code for org.omg.DynamicAny.DynAnyOperations.insert_ulonglong(long) definition code for org.omg.DynamicAny.DynAnyOperations.insert_ulonglong(long) , insert_ushort sample code for org.omg.DynamicAny.DynAnyOperations.insert_ushort(short) definition code for org.omg.DynamicAny.DynAnyOperations.insert_ushort(short) , insert_val sample code for org.omg.DynamicAny.DynAnyOperations.insert_val( definition code for org.omg.DynamicAny.DynAnyOperations.insert_val( , insert_wchar sample code for org.omg.DynamicAny.DynAnyOperations.insert_wchar(char) definition code for org.omg.DynamicAny.DynAnyOperations.insert_wchar(char) , insert_wstring sample code for org.omg.DynamicAny.DynAnyOperations.insert_wstring(java.lang.String) definition code for org.omg.DynamicAny.DynAnyOperations.insert_wstring(java.lang.String) , next sample code for definition code for , rewind sample code for org.omg.DynamicAny.DynAnyOperations.rewind() definition code for org.omg.DynamicAny.DynAnyOperations.rewind() , seek sample code for definition code for , to_any sample code for org.omg.DynamicAny.DynAnyOperations.to_any() definition code for org.omg.DynamicAny.DynAnyOperations.to_any() , type sample code for org.omg.DynamicAny.DynAnyOperations.type() definition code for org.omg.DynamicAny.DynAnyOperations.type()
Methods inherited from interface org.omg.CORBA.Object sample code for org.omg.CORBA.Object definition code for org.omg.CORBA.Object
_create_request sample code for org.omg.CORBA.Object._create_request(org.omg.CORBA.Context, java.lang.String, org.omg.CORBA.NVList, org.omg.CORBA.NamedValue) definition code for org.omg.CORBA.Object._create_request(org.omg.CORBA.Context, java.lang.String, org.omg.CORBA.NVList, org.omg.CORBA.NamedValue) , _create_request sample code for org.omg.CORBA.Object._create_request(org.omg.CORBA.Context, java.lang.String, org.omg.CORBA.NVList, org.omg.CORBA.NamedValue, org.omg.CORBA.ExceptionList, org.omg.CORBA.ContextList) definition code for org.omg.CORBA.Object._create_request(org.omg.CORBA.Context, java.lang.String, org.omg.CORBA.NVList, org.omg.CORBA.NamedValue, org.omg.CORBA.ExceptionList, org.omg.CORBA.ContextList) , _duplicate sample code for org.omg.CORBA.Object._duplicate() definition code for org.omg.CORBA.Object._duplicate() , _get_domain_managers sample code for org.omg.CORBA.Object._get_domain_managers() definition code for org.omg.CORBA.Object._get_domain_managers() , _get_interface_def sample code for org.omg.CORBA.Object._get_interface_def() definition code for org.omg.CORBA.Object._get_interface_def() , _get_policy sample code for org.omg.CORBA.Object._get_policy(int) definition code for org.omg.CORBA.Object._get_policy(int) , _hash sample code for org.omg.CORBA.Object._hash(int) definition code for org.omg.CORBA.Object._hash(int) , _is_a sample code for org.omg.CORBA.Object._is_a(java.lang.String) definition code for org.omg.CORBA.Object._is_a(java.lang.String) , _is_equivalent sample code for org.omg.CORBA.Object._is_equivalent(org.omg.CORBA.Object) definition code for org.omg.CORBA.Object._is_equivalent(org.omg.CORBA.Object) , _non_existent sample code for org.omg.CORBA.Object._non_existent() definition code for org.omg.CORBA.Object._non_existent() , _release sample code for org.omg.CORBA.Object._release() definition code for org.omg.CORBA.Object._release() , _request sample code for org.omg.CORBA.Object._request(java.lang.String) definition code for org.omg.CORBA.Object._request(java.lang.String) , _set_policy_override sample code for org.omg.CORBA.Object._set_policy_override(org.omg.CORBA.Policy[], org.omg.CORBA.SetOverrideType) definition code for org.omg.CORBA.Object._set_policy_override(org.omg.CORBA.Policy[], org.omg.CORBA.SetOverrideType)