corba/src/share/classes/org/omg/DynamicAny/DynamicAny.idl
author ohair
Tue, 25 May 2010 15:52:11 -0700
changeset 5555 b2b5ed3f0d0d
parent 2192 7e916cf3102a
permissions -rw-r--r--
6943119: Rebrand source copyright notices Reviewed-by: darcy
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
02bb8761fcce Initial load
duke
parents:
diff changeset
     1
/*
5555
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 2192
diff changeset
     2
 * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
4
02bb8761fcce Initial load
duke
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
02bb8761fcce Initial load
duke
parents:
diff changeset
     4
 *
02bb8761fcce Initial load
duke
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
02bb8761fcce Initial load
duke
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
5555
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 2192
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
4
02bb8761fcce Initial load
duke
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
5555
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 2192
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
4
02bb8761fcce Initial load
duke
parents:
diff changeset
    10
 *
02bb8761fcce Initial load
duke
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
02bb8761fcce Initial load
duke
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
02bb8761fcce Initial load
duke
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
02bb8761fcce Initial load
duke
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
02bb8761fcce Initial load
duke
parents:
diff changeset
    15
 * accompanied this code).
02bb8761fcce Initial load
duke
parents:
diff changeset
    16
 *
02bb8761fcce Initial load
duke
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
02bb8761fcce Initial load
duke
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
02bb8761fcce Initial load
duke
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
02bb8761fcce Initial load
duke
parents:
diff changeset
    20
 *
5555
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 2192
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 2192
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 2192
diff changeset
    23
 * questions.
4
02bb8761fcce Initial load
duke
parents:
diff changeset
    24
 */
02bb8761fcce Initial load
duke
parents:
diff changeset
    25
02bb8761fcce Initial load
duke
parents:
diff changeset
    26
// IDL
02bb8761fcce Initial load
duke
parents:
diff changeset
    27
// File: DynamicAny.idl
02bb8761fcce Initial load
duke
parents:
diff changeset
    28
02bb8761fcce Initial load
duke
parents:
diff changeset
    29
#ifndef _DYNAMIC_ANY_IDL_
02bb8761fcce Initial load
duke
parents:
diff changeset
    30
#define _DYNAMIC_ANY_IDL_
02bb8761fcce Initial load
duke
parents:
diff changeset
    31
02bb8761fcce Initial load
duke
parents:
diff changeset
    32
#pragma prefix "omg.org"
02bb8761fcce Initial load
duke
parents:
diff changeset
    33
#include <orb.idl>
02bb8761fcce Initial load
duke
parents:
diff changeset
    34
02bb8761fcce Initial load
duke
parents:
diff changeset
    35
/**
02bb8761fcce Initial load
duke
parents:
diff changeset
    36
* An any can be passed to a program that doesn't have any static information for the
02bb8761fcce Initial load
duke
parents:
diff changeset
    37
type of the any (code generated for the type by an IDL compiler has not been
02bb8761fcce Initial load
duke
parents:
diff changeset
    38
compiled with the object implementation). As a result, the object receiving the any
02bb8761fcce Initial load
duke
parents:
diff changeset
    39
does not have a portable method of using it.
02bb8761fcce Initial load
duke
parents:
diff changeset
    40
<P>DynAnys enable traversal of the data value associated with an any at
02bb8761fcce Initial load
duke
parents:
diff changeset
    41
runtime and extraction of the primitive constituents of the data value. This is especially
02bb8761fcce Initial load
duke
parents:
diff changeset
    42
helpful for writing powerful generic servers (bridges, event channels supporting
02bb8761fcce Initial load
duke
parents:
diff changeset
    43
filtering).
02bb8761fcce Initial load
duke
parents:
diff changeset
    44
<P>Similarly, this facility enables the construction of an any at runtime, without having
02bb8761fcce Initial load
duke
parents:
diff changeset
    45
static knowledge of its type. This is especially helpful for writing generic clients
02bb8761fcce Initial load
duke
parents:
diff changeset
    46
(bridges, browsers, debuggers, user interface tools).
02bb8761fcce Initial load
duke
parents:
diff changeset
    47
*/
02bb8761fcce Initial load
duke
parents:
diff changeset
    48
module DynamicAny {
02bb8761fcce Initial load
duke
parents:
diff changeset
    49
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
    50
    * Any values can be dynamically interpreted (traversed) and constructed through DynAny objects.
02bb8761fcce Initial load
duke
parents:
diff changeset
    51
    * A DynAny object is associated with a data value which corresponds to a copy of the value
02bb8761fcce Initial load
duke
parents:
diff changeset
    52
    * inserted into an any.
02bb8761fcce Initial load
duke
parents:
diff changeset
    53
    * <P>A DynAny object may be viewed as an ordered collection of component DynAnys.
02bb8761fcce Initial load
duke
parents:
diff changeset
    54
    * For DynAnys representing a basic type, such as long, or a type without components,
02bb8761fcce Initial load
duke
parents:
diff changeset
    55
    * such as an empty exception, the ordered collection of components is empty.
02bb8761fcce Initial load
duke
parents:
diff changeset
    56
    * Each DynAny object maintains the notion of a current position into its collection
02bb8761fcce Initial load
duke
parents:
diff changeset
    57
    * of component DynAnys. The current position is identified by an index value that runs
02bb8761fcce Initial load
duke
parents:
diff changeset
    58
    * from 0 to n-1, where n is the number of components.
02bb8761fcce Initial load
duke
parents:
diff changeset
    59
    * The special index value -1 indicates a current position that points nowhere.
02bb8761fcce Initial load
duke
parents:
diff changeset
    60
    * For values that cannot have a current position (such as an empty exception),
02bb8761fcce Initial load
duke
parents:
diff changeset
    61
    * the index value is fixed at -1.
02bb8761fcce Initial load
duke
parents:
diff changeset
    62
    * If a DynAny is initialized with a value that has components, the index is initialized to 0.
02bb8761fcce Initial load
duke
parents:
diff changeset
    63
    * After creation of an uninitialized DynAny (that is, a DynAny that has no value but a TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
    64
    * that permits components), the current position depends on the type of value represented by
02bb8761fcce Initial load
duke
parents:
diff changeset
    65
    * the DynAny. (The current position is set to 0 or -1, depending on whether the new DynAny
02bb8761fcce Initial load
duke
parents:
diff changeset
    66
    * gets default values for its components.)
02bb8761fcce Initial load
duke
parents:
diff changeset
    67
    * <P>The iteration operations rewind, seek, and next can be used to change the current position
02bb8761fcce Initial load
duke
parents:
diff changeset
    68
    * and the current_component operation returns the component at the current position.
02bb8761fcce Initial load
duke
parents:
diff changeset
    69
    * The component_count operation returns the number of components of a DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
    70
    * Collectively, these operations enable iteration over the components of a DynAny, for example,
02bb8761fcce Initial load
duke
parents:
diff changeset
    71
    * to (recursively) examine its contents.
02bb8761fcce Initial load
duke
parents:
diff changeset
    72
    * <P>A constructed DynAny object is a DynAny object associated with a constructed type.
02bb8761fcce Initial load
duke
parents:
diff changeset
    73
    * There is a different interface, inheriting from the DynAny interface, associated with
02bb8761fcce Initial load
duke
parents:
diff changeset
    74
    * each kind of constructed type in IDL (fixed, enum, struct, sequence, union, array,
02bb8761fcce Initial load
duke
parents:
diff changeset
    75
    * exception, and value type).
02bb8761fcce Initial load
duke
parents:
diff changeset
    76
    * <P>A constructed DynAny object exports operations that enable the creation of new DynAny objects,
02bb8761fcce Initial load
duke
parents:
diff changeset
    77
    * each of them associated with a component of the constructed data value.
02bb8761fcce Initial load
duke
parents:
diff changeset
    78
    * As an example, a DynStruct is associated with a struct value. This means that the DynStruct
02bb8761fcce Initial load
duke
parents:
diff changeset
    79
    * may be seen as owning an ordered collection of components, one for each structure member.
02bb8761fcce Initial load
duke
parents:
diff changeset
    80
    * The DynStruct object exports operations that enable the creation of new DynAny objects,
02bb8761fcce Initial load
duke
parents:
diff changeset
    81
    * each of them associated with a member of the struct.
02bb8761fcce Initial load
duke
parents:
diff changeset
    82
    * <P>If a DynAny object has been obtained from another (constructed) DynAny object,
02bb8761fcce Initial load
duke
parents:
diff changeset
    83
    * such as a DynAny representing a structure member that was created from a DynStruct,
02bb8761fcce Initial load
duke
parents:
diff changeset
    84
    * the member DynAny is logically contained in the DynStruct.
02bb8761fcce Initial load
duke
parents:
diff changeset
    85
    * Calling an insert or get operation leaves the current position unchanged.
02bb8761fcce Initial load
duke
parents:
diff changeset
    86
    * Destroying a top-level DynAny object (one that was not obtained as a component of another DynAny)
02bb8761fcce Initial load
duke
parents:
diff changeset
    87
    * also destroys any component DynAny objects obtained from it.
02bb8761fcce Initial load
duke
parents:
diff changeset
    88
    * Destroying a non-top level DynAny object does nothing.
02bb8761fcce Initial load
duke
parents:
diff changeset
    89
    * Invoking operations on a destroyed top-level DynAny or any of its descendants raises OBJECT_NOT_EXIST.
02bb8761fcce Initial load
duke
parents:
diff changeset
    90
    * If the programmer wants to destroy a DynAny object but still wants to manipulate some component
02bb8761fcce Initial load
duke
parents:
diff changeset
    91
    * of the data value associated with it, then he or she should first create a DynAny for the component
02bb8761fcce Initial load
duke
parents:
diff changeset
    92
    * and, after that, make a copy of the created DynAny object.
02bb8761fcce Initial load
duke
parents:
diff changeset
    93
    * <P>The behavior of DynAny objects has been defined in order to enable efficient implementations
02bb8761fcce Initial load
duke
parents:
diff changeset
    94
    * in terms of allocated memory space and speed of access. DynAny objects are intended to be used
02bb8761fcce Initial load
duke
parents:
diff changeset
    95
    * for traversing values extracted from anys or constructing values of anys at runtime.
02bb8761fcce Initial load
duke
parents:
diff changeset
    96
    * Their use for other purposes is not recommended.
02bb8761fcce Initial load
duke
parents:
diff changeset
    97
    * <P>Insert and get operations are necessary to handle basic DynAny objects
02bb8761fcce Initial load
duke
parents:
diff changeset
    98
    * but are also helpful to handle constructed DynAny objects.
02bb8761fcce Initial load
duke
parents:
diff changeset
    99
    * Inserting a basic data type value into a constructed DynAny object
02bb8761fcce Initial load
duke
parents:
diff changeset
   100
    * implies initializing the current component of the constructed data value
02bb8761fcce Initial load
duke
parents:
diff changeset
   101
    * associated with the DynAny object. For example, invoking insert_boolean on a
02bb8761fcce Initial load
duke
parents:
diff changeset
   102
    * DynStruct implies inserting a boolean data value at the current position
02bb8761fcce Initial load
duke
parents:
diff changeset
   103
    * of the associated struct data value.
02bb8761fcce Initial load
duke
parents:
diff changeset
   104
    * A type is consistent for inserting or extracting a value if its TypeCode is equivalent to
02bb8761fcce Initial load
duke
parents:
diff changeset
   105
    * the TypeCode contained in the DynAny or, if the DynAny has components, is equivalent to the TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
   106
    * of the DynAny at the current position.
02bb8761fcce Initial load
duke
parents:
diff changeset
   107
    * <P>DynAny and DynAnyFactory objects are intended to be local to the process in which they are
02bb8761fcce Initial load
duke
parents:
diff changeset
   108
    * created and used. This means that references to DynAny and DynAnyFactory objects cannot be exported
02bb8761fcce Initial load
duke
parents:
diff changeset
   109
    * to other processes, or externalized with ORB.object_to_string().
02bb8761fcce Initial load
duke
parents:
diff changeset
   110
    * If any attempt is made to do so, the offending operation will raise a MARSHAL system exception.
02bb8761fcce Initial load
duke
parents:
diff changeset
   111
    * Since their interfaces are specified in IDL, DynAny objects export operations defined in the standard
02bb8761fcce Initial load
duke
parents:
diff changeset
   112
    * org.omg.CORBA.Object interface. However, any attempt to invoke operations exported through the Object
02bb8761fcce Initial load
duke
parents:
diff changeset
   113
    * interface may raise the standard NO_IMPLEMENT exception.
02bb8761fcce Initial load
duke
parents:
diff changeset
   114
    * An attempt to use a DynAny object with the DII may raise the NO_IMPLEMENT exception.
02bb8761fcce Initial load
duke
parents:
diff changeset
   115
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   116
    interface DynAny {
02bb8761fcce Initial load
duke
parents:
diff changeset
   117
	#pragma sun_localservant DynAny ""
02bb8761fcce Initial load
duke
parents:
diff changeset
   118
        exception InvalidValue {};
02bb8761fcce Initial load
duke
parents:
diff changeset
   119
        exception TypeMismatch {};
02bb8761fcce Initial load
duke
parents:
diff changeset
   120
02bb8761fcce Initial load
duke
parents:
diff changeset
   121
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   122
        * Returns the TypeCode associated with this DynAny object.
02bb8761fcce Initial load
duke
parents:
diff changeset
   123
        * A DynAny object is created with a TypeCode value assigned to it.
02bb8761fcce Initial load
duke
parents:
diff changeset
   124
        * This TypeCode value determines the type of the value handled through the DynAny object.
02bb8761fcce Initial load
duke
parents:
diff changeset
   125
        * Note that the TypeCode associated with a DynAny object is initialized at the time the
02bb8761fcce Initial load
duke
parents:
diff changeset
   126
        * DynAny is created and cannot be changed during lifetime of the DynAny object.
02bb8761fcce Initial load
duke
parents:
diff changeset
   127
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   128
        * @return The TypeCode associated with this DynAny object
02bb8761fcce Initial load
duke
parents:
diff changeset
   129
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   130
        CORBA::TypeCode type();
02bb8761fcce Initial load
duke
parents:
diff changeset
   131
02bb8761fcce Initial load
duke
parents:
diff changeset
   132
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   133
        * Initializes the value associated with a DynAny object with the value
02bb8761fcce Initial load
duke
parents:
diff changeset
   134
        * associated with another DynAny object.
02bb8761fcce Initial load
duke
parents:
diff changeset
   135
        * The current position of the target DynAny is set to zero for values that have components
02bb8761fcce Initial load
duke
parents:
diff changeset
   136
        * and to -1 for values that do not have components.
02bb8761fcce Initial load
duke
parents:
diff changeset
   137
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   138
        * @param dyn_any
02bb8761fcce Initial load
duke
parents:
diff changeset
   139
        * @exception TypeMismatch if the type of the passed DynAny is not equivalent to the type of target DynAny
02bb8761fcce Initial load
duke
parents:
diff changeset
   140
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   141
        void assign(in DynAny dyn_any)
02bb8761fcce Initial load
duke
parents:
diff changeset
   142
            raises(TypeMismatch);
02bb8761fcce Initial load
duke
parents:
diff changeset
   143
02bb8761fcce Initial load
duke
parents:
diff changeset
   144
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   145
        * Initializes the value associated with a DynAny object with the value contained in an any.
02bb8761fcce Initial load
duke
parents:
diff changeset
   146
        * The current position of the target DynAny is set to zero for values that have components
02bb8761fcce Initial load
duke
parents:
diff changeset
   147
        * and to -1 for values that do not have components.
02bb8761fcce Initial load
duke
parents:
diff changeset
   148
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   149
        * @exception TypeMismatch if the type of the passed Any is not equivalent to the type of target DynAny
02bb8761fcce Initial load
duke
parents:
diff changeset
   150
        * @exception InvalidValue if the passed Any does not contain a legal value (such as a null string)
02bb8761fcce Initial load
duke
parents:
diff changeset
   151
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   152
        void from_any(in any value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   153
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   154
02bb8761fcce Initial load
duke
parents:
diff changeset
   155
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   156
        * Creates an any value from a DynAny object.
02bb8761fcce Initial load
duke
parents:
diff changeset
   157
        * A copy of the TypeCode associated with the DynAny object is assigned to the resulting any.
02bb8761fcce Initial load
duke
parents:
diff changeset
   158
        * The value associated with the DynAny object is copied into the any.
02bb8761fcce Initial load
duke
parents:
diff changeset
   159
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   160
        * @return a new Any object with the same value and TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
   161
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   162
        any to_any();
02bb8761fcce Initial load
duke
parents:
diff changeset
   163
02bb8761fcce Initial load
duke
parents:
diff changeset
   164
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   165
        * Compares two DynAny values for equality.
02bb8761fcce Initial load
duke
parents:
diff changeset
   166
        * Two DynAny values are equal if their TypeCodes are equivalent and, recursively, all component DynAnys
02bb8761fcce Initial load
duke
parents:
diff changeset
   167
        * have equal values.
02bb8761fcce Initial load
duke
parents:
diff changeset
   168
        * The current position of the two DynAnys being compared has no effect on the result of equal.
02bb8761fcce Initial load
duke
parents:
diff changeset
   169
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   170
        * @return true of the DynAnys are equal, false otherwise
02bb8761fcce Initial load
duke
parents:
diff changeset
   171
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   172
        boolean equal(in DynAny dyn_any);
02bb8761fcce Initial load
duke
parents:
diff changeset
   173
02bb8761fcce Initial load
duke
parents:
diff changeset
   174
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   175
        * Destroys a DynAny object.
02bb8761fcce Initial load
duke
parents:
diff changeset
   176
        * This operation frees any resources used to represent the data value associated with a DynAny object.
02bb8761fcce Initial load
duke
parents:
diff changeset
   177
        * It must be invoked on references obtained from one of the creation operations on the ORB interface
02bb8761fcce Initial load
duke
parents:
diff changeset
   178
        * or on a reference returned by DynAny.copy() to avoid resource leaks.
02bb8761fcce Initial load
duke
parents:
diff changeset
   179
        * Invoking destroy on component DynAny objects (for example, on objects returned by the
02bb8761fcce Initial load
duke
parents:
diff changeset
   180
        * current_component operation) does nothing.
02bb8761fcce Initial load
duke
parents:
diff changeset
   181
        * Destruction of a DynAny object implies destruction of all DynAny objects obtained from it.
02bb8761fcce Initial load
duke
parents:
diff changeset
   182
        * That is, references to components of a destroyed DynAny become invalid.
02bb8761fcce Initial load
duke
parents:
diff changeset
   183
        * Invocations on such references raise OBJECT_NOT_EXIST.
02bb8761fcce Initial load
duke
parents:
diff changeset
   184
        * It is possible to manipulate a component of a DynAny beyond the life time of the DynAny
02bb8761fcce Initial load
duke
parents:
diff changeset
   185
        * from which the component was obtained by making a copy of the component with the copy operation
02bb8761fcce Initial load
duke
parents:
diff changeset
   186
        * before destroying the DynAny from which the component was obtained.
02bb8761fcce Initial load
duke
parents:
diff changeset
   187
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   188
        void destroy();
02bb8761fcce Initial load
duke
parents:
diff changeset
   189
02bb8761fcce Initial load
duke
parents:
diff changeset
   190
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   191
        * Creates a new DynAny object whose value is a deep copy of the DynAny on which it is invoked.
02bb8761fcce Initial load
duke
parents:
diff changeset
   192
        * The operation is polymorphic, that is, invoking it on one of the types derived from DynAny,
02bb8761fcce Initial load
duke
parents:
diff changeset
   193
        * such as DynStruct, creates the derived type but returns its reference as the DynAny base type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   194
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   195
        * @return a deep copy of the DynAny object
02bb8761fcce Initial load
duke
parents:
diff changeset
   196
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   197
        DynAny copy();
02bb8761fcce Initial load
duke
parents:
diff changeset
   198
02bb8761fcce Initial load
duke
parents:
diff changeset
   199
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   200
        * Inserts a boolean value into the DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   201
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   202
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   203
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   204
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   205
        void insert_boolean(in boolean value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   206
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   207
02bb8761fcce Initial load
duke
parents:
diff changeset
   208
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   209
        * Inserts a byte value into the DynAny. The IDL octet data type is mapped to the Java byte data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   210
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   211
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   212
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   213
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   214
        void insert_octet(in octet value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   215
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   216
02bb8761fcce Initial load
duke
parents:
diff changeset
   217
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   218
        * Inserts a char value into the DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   219
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   220
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   221
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   222
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   223
        void insert_char(in char value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   224
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   225
02bb8761fcce Initial load
duke
parents:
diff changeset
   226
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   227
        * Inserts a short value into the DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   228
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   229
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   230
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   231
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   232
        void insert_short(in short value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   233
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   234
02bb8761fcce Initial load
duke
parents:
diff changeset
   235
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   236
        * Inserts a short value into the DynAny. The IDL ushort data type is mapped to the Java short data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   237
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   238
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   239
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   240
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   241
        void insert_ushort(in unsigned short value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   242
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   243
02bb8761fcce Initial load
duke
parents:
diff changeset
   244
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   245
        * Inserts an integer value into the DynAny. The IDL long data type is mapped to the Java int data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   246
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   247
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   248
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   249
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   250
        void insert_long(in long value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   251
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   252
02bb8761fcce Initial load
duke
parents:
diff changeset
   253
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   254
        * Inserts an integer value into the DynAny. The IDL ulong data type is mapped to the Java int data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   255
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   256
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   257
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   258
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   259
        void insert_ulong(in unsigned long value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   260
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   261
02bb8761fcce Initial load
duke
parents:
diff changeset
   262
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   263
        * Inserts a float value into the DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   264
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   265
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   266
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   267
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   268
        void insert_float(in float value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   269
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   270
02bb8761fcce Initial load
duke
parents:
diff changeset
   271
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   272
        * Inserts a double value into the DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   273
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   274
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   275
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   276
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   277
        void insert_double(in double value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   278
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   279
02bb8761fcce Initial load
duke
parents:
diff changeset
   280
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   281
        * Inserts a string value into the DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   282
        * Both bounded and unbounded strings are inserted using this method.
02bb8761fcce Initial load
duke
parents:
diff changeset
   283
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   284
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   285
        * @exception InvalidValue if the string inserted is longer than the bound of a bounded string
02bb8761fcce Initial load
duke
parents:
diff changeset
   286
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   287
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   288
        void insert_string(in string value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   289
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   290
02bb8761fcce Initial load
duke
parents:
diff changeset
   291
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   292
        * Inserts a reference to a CORBA object into the DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   293
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   294
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   295
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   296
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   297
        void insert_reference(in Object value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   298
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   299
02bb8761fcce Initial load
duke
parents:
diff changeset
   300
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   301
        * Inserts a TypeCode object into the DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   302
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   303
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   304
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   305
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   306
        void insert_typecode(in CORBA::TypeCode value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   307
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   308
02bb8761fcce Initial load
duke
parents:
diff changeset
   309
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   310
        * Inserts a long value into the DynAny. The IDL long long data type is mapped to the Java long data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   311
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   312
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   313
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   314
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   315
        void insert_longlong(in long long value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   316
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   317
02bb8761fcce Initial load
duke
parents:
diff changeset
   318
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   319
        * Inserts a long value into the DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   320
        * The IDL unsigned long long data type is mapped to the Java long data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   321
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   322
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   323
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   324
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   325
        void insert_ulonglong(in unsigned long long value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   326
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   327
02bb8761fcce Initial load
duke
parents:
diff changeset
   328
//        void insert_longdouble(in long double value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   329
//            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   330
02bb8761fcce Initial load
duke
parents:
diff changeset
   331
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   332
        * Inserts a char value into the DynAny. The IDL wchar data type is mapped to the Java char data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   333
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   334
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   335
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   336
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   337
        void insert_wchar(in wchar value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   338
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   339
02bb8761fcce Initial load
duke
parents:
diff changeset
   340
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   341
        * Inserts a string value into the DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   342
        * Both bounded and unbounded strings are inserted using this method.
02bb8761fcce Initial load
duke
parents:
diff changeset
   343
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   344
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   345
        * @exception InvalidValue if the string inserted is longer than the bound of a bounded string
02bb8761fcce Initial load
duke
parents:
diff changeset
   346
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   347
        void insert_wstring(in wstring value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   348
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   349
02bb8761fcce Initial load
duke
parents:
diff changeset
   350
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   351
        * Inserts an Any value into the Any represented by this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   352
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   353
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   354
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   355
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   356
        void insert_any(in any value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   357
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   358
02bb8761fcce Initial load
duke
parents:
diff changeset
   359
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   360
        * Inserts the Any value contained in the parameter DynAny into the Any represented by this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   361
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   362
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   363
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   364
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   365
        void insert_dyn_any(in DynAny value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   366
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   367
02bb8761fcce Initial load
duke
parents:
diff changeset
   368
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   369
        * Inserts a reference to a Serializable object into this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   370
        * The IDL ValueBase type is mapped to the Java Serializable type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   371
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   372
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   373
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   374
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   375
        void insert_val(in ValueBase value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   376
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   377
02bb8761fcce Initial load
duke
parents:
diff changeset
   378
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   379
        * Extracts the boolean value from this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   380
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   381
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   382
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   383
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   384
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   385
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   386
        boolean get_boolean()
02bb8761fcce Initial load
duke
parents:
diff changeset
   387
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   388
02bb8761fcce Initial load
duke
parents:
diff changeset
   389
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   390
        * Extracts the byte value from this DynAny. The IDL octet data type is mapped to the Java byte data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   391
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   392
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   393
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   394
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   395
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   396
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   397
        octet get_octet()
02bb8761fcce Initial load
duke
parents:
diff changeset
   398
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   399
02bb8761fcce Initial load
duke
parents:
diff changeset
   400
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   401
        * Extracts the char value from this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   402
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   403
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   404
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   405
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   406
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   407
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   408
        char get_char()
02bb8761fcce Initial load
duke
parents:
diff changeset
   409
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   410
02bb8761fcce Initial load
duke
parents:
diff changeset
   411
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   412
        * Extracts the short value from this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   413
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   414
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   415
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   416
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   417
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   418
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   419
        short get_short()
02bb8761fcce Initial load
duke
parents:
diff changeset
   420
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   421
02bb8761fcce Initial load
duke
parents:
diff changeset
   422
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   423
        * Extracts the short value from this DynAny. The IDL ushort data type is mapped to the Java short data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   424
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   425
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   426
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   427
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   428
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   429
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   430
        unsigned short get_ushort()
02bb8761fcce Initial load
duke
parents:
diff changeset
   431
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   432
02bb8761fcce Initial load
duke
parents:
diff changeset
   433
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   434
        * Extracts the integer value from this DynAny. The IDL long data type is mapped to the Java int data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   435
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   436
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   437
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   438
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   439
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   440
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   441
        long get_long()
02bb8761fcce Initial load
duke
parents:
diff changeset
   442
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   443
02bb8761fcce Initial load
duke
parents:
diff changeset
   444
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   445
        * Extracts the integer value from this DynAny. The IDL ulong data type is mapped to the Java int data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   446
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   447
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   448
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   449
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   450
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   451
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   452
        unsigned long get_ulong()
02bb8761fcce Initial load
duke
parents:
diff changeset
   453
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   454
02bb8761fcce Initial load
duke
parents:
diff changeset
   455
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   456
        * Extracts the float value from this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   457
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   458
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   459
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   460
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   461
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   462
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   463
        float get_float()
02bb8761fcce Initial load
duke
parents:
diff changeset
   464
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   465
02bb8761fcce Initial load
duke
parents:
diff changeset
   466
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   467
        * Extracts the double value from this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   468
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   469
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   470
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   471
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   472
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   473
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   474
        double get_double()
02bb8761fcce Initial load
duke
parents:
diff changeset
   475
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   476
02bb8761fcce Initial load
duke
parents:
diff changeset
   477
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   478
        * Extracts the string value from this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   479
        * Both bounded and unbounded strings are extracted using this method.
02bb8761fcce Initial load
duke
parents:
diff changeset
   480
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   481
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   482
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   483
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   484
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   485
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   486
        string get_string()
02bb8761fcce Initial load
duke
parents:
diff changeset
   487
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   488
02bb8761fcce Initial load
duke
parents:
diff changeset
   489
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   490
        * Extracts the reference to a CORBA Object from this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   491
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   492
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   493
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   494
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   495
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   496
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   497
        Object get_reference()
02bb8761fcce Initial load
duke
parents:
diff changeset
   498
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   499
02bb8761fcce Initial load
duke
parents:
diff changeset
   500
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   501
        * Extracts the TypeCode object from this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   502
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   503
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   504
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   505
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   506
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   507
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   508
        CORBA::TypeCode get_typecode()
02bb8761fcce Initial load
duke
parents:
diff changeset
   509
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   510
02bb8761fcce Initial load
duke
parents:
diff changeset
   511
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   512
        * Extracts the long value from this DynAny. The IDL long long data type is mapped to the Java long data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   513
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   514
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   515
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   516
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   517
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   518
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   519
        long long get_longlong()
02bb8761fcce Initial load
duke
parents:
diff changeset
   520
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   521
02bb8761fcce Initial load
duke
parents:
diff changeset
   522
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   523
        * Extracts the long value from this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   524
        * The IDL unsigned long long data type is mapped to the Java long data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   525
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   526
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   527
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   528
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   529
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   530
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   531
        unsigned long long get_ulonglong()
02bb8761fcce Initial load
duke
parents:
diff changeset
   532
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   533
//        long double get_longdouble()
02bb8761fcce Initial load
duke
parents:
diff changeset
   534
//            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   535
02bb8761fcce Initial load
duke
parents:
diff changeset
   536
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   537
        * Extracts the long value from this DynAny. The IDL wchar data type is mapped to the Java char data type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   538
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   539
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   540
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   541
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   542
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   543
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   544
        wchar get_wchar()
02bb8761fcce Initial load
duke
parents:
diff changeset
   545
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   546
02bb8761fcce Initial load
duke
parents:
diff changeset
   547
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   548
        * Extracts the string value from this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   549
        * Both bounded and unbounded strings are extracted using this method.
02bb8761fcce Initial load
duke
parents:
diff changeset
   550
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   551
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   552
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   553
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   554
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   555
        wstring get_wstring()
02bb8761fcce Initial load
duke
parents:
diff changeset
   556
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   557
02bb8761fcce Initial load
duke
parents:
diff changeset
   558
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   559
        * Extracts an Any value contained in the Any represented by this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   560
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   561
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   562
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   563
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   564
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   565
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   566
        any get_any()
02bb8761fcce Initial load
duke
parents:
diff changeset
   567
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   568
02bb8761fcce Initial load
duke
parents:
diff changeset
   569
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   570
        * Extracts the Any value contained in the Any represented by this DynAny and returns it wrapped
02bb8761fcce Initial load
duke
parents:
diff changeset
   571
        * into a new DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   572
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   573
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   574
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   575
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   576
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   577
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   578
        DynAny get_dyn_any()
02bb8761fcce Initial load
duke
parents:
diff changeset
   579
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   580
02bb8761fcce Initial load
duke
parents:
diff changeset
   581
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   582
        * Extracts a Serializable object from this DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   583
        * The IDL ValueBase type is mapped to the Java Serializable type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   584
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   585
        * @exception TypeMismatch if the accessed component in the DynAny is of a type
02bb8761fcce Initial load
duke
parents:
diff changeset
   586
        * that is not equivalent to the requested type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   587
        * @exception TypeMismatch if called on a DynAny whose current component itself has components
02bb8761fcce Initial load
duke
parents:
diff changeset
   588
        * @exception InvalidValue if this DynAny has components but has a current position of -1
02bb8761fcce Initial load
duke
parents:
diff changeset
   589
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   590
        ValueBase get_val()
02bb8761fcce Initial load
duke
parents:
diff changeset
   591
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   592
02bb8761fcce Initial load
duke
parents:
diff changeset
   593
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   594
        * Sets the current position to index. The current position is indexed 0 to n-1, that is,
02bb8761fcce Initial load
duke
parents:
diff changeset
   595
        * index zero corresponds to the first component. The operation returns true if the resulting
02bb8761fcce Initial load
duke
parents:
diff changeset
   596
        * current position indicates a component of the DynAny and false if index indicates
02bb8761fcce Initial load
duke
parents:
diff changeset
   597
        * a position that does not correspond to a component.
02bb8761fcce Initial load
duke
parents:
diff changeset
   598
        * Calling seek with a negative index is legal. It sets the current position to -1 to indicate
02bb8761fcce Initial load
duke
parents:
diff changeset
   599
        * no component and returns false. Passing a non-negative index value for a DynAny that does not
02bb8761fcce Initial load
duke
parents:
diff changeset
   600
        * have a component at the corresponding position sets the current position to -1 and returns false.
02bb8761fcce Initial load
duke
parents:
diff changeset
   601
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   602
        boolean seek(in long index);
02bb8761fcce Initial load
duke
parents:
diff changeset
   603
02bb8761fcce Initial load
duke
parents:
diff changeset
   604
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   605
        * Is equivalent to seek(0).
02bb8761fcce Initial load
duke
parents:
diff changeset
   606
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   607
        void rewind();
02bb8761fcce Initial load
duke
parents:
diff changeset
   608
02bb8761fcce Initial load
duke
parents:
diff changeset
   609
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   610
        * Advances the current position to the next component.
02bb8761fcce Initial load
duke
parents:
diff changeset
   611
        * The operation returns true while the resulting current position indicates a component, false otherwise.
02bb8761fcce Initial load
duke
parents:
diff changeset
   612
        * A false return value leaves the current position at -1.
02bb8761fcce Initial load
duke
parents:
diff changeset
   613
        * Invoking next on a DynAny without components leaves the current position at -1 and returns false.
02bb8761fcce Initial load
duke
parents:
diff changeset
   614
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   615
        boolean next();
02bb8761fcce Initial load
duke
parents:
diff changeset
   616
02bb8761fcce Initial load
duke
parents:
diff changeset
   617
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   618
        * Returns the number of components of a DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   619
        * For a DynAny without components, it returns zero.
02bb8761fcce Initial load
duke
parents:
diff changeset
   620
        * The operation only counts the components at the top level.
02bb8761fcce Initial load
duke
parents:
diff changeset
   621
        * For example, if component_count is invoked on a DynStruct with a single member,
02bb8761fcce Initial load
duke
parents:
diff changeset
   622
        * the return value is 1, irrespective of the type of the member.
02bb8761fcce Initial load
duke
parents:
diff changeset
   623
        * <UL>
02bb8761fcce Initial load
duke
parents:
diff changeset
   624
        * <LI>For sequences, the operation returns the current number of elements.
02bb8761fcce Initial load
duke
parents:
diff changeset
   625
        * <LI>For structures, exceptions, and value types, the operation returns the number of members.
02bb8761fcce Initial load
duke
parents:
diff changeset
   626
        * <LI>For arrays, the operation returns the number of elements.
02bb8761fcce Initial load
duke
parents:
diff changeset
   627
        * <LI>For unions, the operation returns 2 if the discriminator indicates that a named member is active,
02bb8761fcce Initial load
duke
parents:
diff changeset
   628
        * otherwise, it returns 1.
02bb8761fcce Initial load
duke
parents:
diff changeset
   629
        * <LI>For DynFixed and DynEnum, the operation returns zero.
02bb8761fcce Initial load
duke
parents:
diff changeset
   630
        * </UL>
02bb8761fcce Initial load
duke
parents:
diff changeset
   631
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   632
        unsigned long component_count();
02bb8761fcce Initial load
duke
parents:
diff changeset
   633
02bb8761fcce Initial load
duke
parents:
diff changeset
   634
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   635
        * Returns the DynAny for the component at the current position.
02bb8761fcce Initial load
duke
parents:
diff changeset
   636
        * It does not advance the current position, so repeated calls to current_component
02bb8761fcce Initial load
duke
parents:
diff changeset
   637
        * without an intervening call to rewind, next, or seek return the same component.
02bb8761fcce Initial load
duke
parents:
diff changeset
   638
        * The returned DynAny object reference can be used to get/set the value of the current component.
02bb8761fcce Initial load
duke
parents:
diff changeset
   639
        * If the current component represents a complex type, the returned reference can be narrowed
02bb8761fcce Initial load
duke
parents:
diff changeset
   640
        * based on the TypeCode to get the interface corresponding to the to the complex type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   641
        * Calling current_component on a DynAny that cannot have components,
02bb8761fcce Initial load
duke
parents:
diff changeset
   642
        * such as a DynEnum or an empty exception, raises TypeMismatch.
02bb8761fcce Initial load
duke
parents:
diff changeset
   643
        * Calling current_component on a DynAny whose current position is -1 returns a nil reference.
02bb8761fcce Initial load
duke
parents:
diff changeset
   644
        * The iteration operations, together with current_component, can be used
02bb8761fcce Initial load
duke
parents:
diff changeset
   645
        * to dynamically compose an any value. After creating a dynamic any, such as a DynStruct,
02bb8761fcce Initial load
duke
parents:
diff changeset
   646
        * current_component and next can be used to initialize all the components of the value.
02bb8761fcce Initial load
duke
parents:
diff changeset
   647
        * Once the dynamic value is completely initialized, to_any creates the corresponding any value.
02bb8761fcce Initial load
duke
parents:
diff changeset
   648
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   649
        * @exception TypeMismatch If called on a DynAny that cannot have components,
02bb8761fcce Initial load
duke
parents:
diff changeset
   650
        * such as a DynEnum or an empty exception
02bb8761fcce Initial load
duke
parents:
diff changeset
   651
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   652
        DynAny current_component()
02bb8761fcce Initial load
duke
parents:
diff changeset
   653
            raises(TypeMismatch);
02bb8761fcce Initial load
duke
parents:
diff changeset
   654
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   655
02bb8761fcce Initial load
duke
parents:
diff changeset
   656
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   657
    * DynFixed objects support the manipulation of IDL fixed values.
02bb8761fcce Initial load
duke
parents:
diff changeset
   658
    * Because IDL does not have a generic type that can represent fixed types with arbitrary
02bb8761fcce Initial load
duke
parents:
diff changeset
   659
    * number of digits and arbitrary scale, the operations use the IDL string type.
02bb8761fcce Initial load
duke
parents:
diff changeset
   660
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   661
    interface DynFixed : DynAny {
02bb8761fcce Initial load
duke
parents:
diff changeset
   662
	#pragma sun_localservant DynFixed ""
02bb8761fcce Initial load
duke
parents:
diff changeset
   663
02bb8761fcce Initial load
duke
parents:
diff changeset
   664
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   665
        * Returns the value of a DynFixed.
02bb8761fcce Initial load
duke
parents:
diff changeset
   666
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   667
        string get_value();
02bb8761fcce Initial load
duke
parents:
diff changeset
   668
02bb8761fcce Initial load
duke
parents:
diff changeset
   669
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   670
        * Sets the value of the DynFixed.
02bb8761fcce Initial load
duke
parents:
diff changeset
   671
        * The val string must contain a fixed string constant in the same format as used for IDL fixed-point literals.
02bb8761fcce Initial load
duke
parents:
diff changeset
   672
        * However, the trailing d or D is optional. The return value is true if val can be represented as the DynFixed
02bb8761fcce Initial load
duke
parents:
diff changeset
   673
        * without loss of precision. If val has more fractional digits than can be represented in the DynFixed,
02bb8761fcce Initial load
duke
parents:
diff changeset
   674
        * fractional digits are truncated and the return value is false.
02bb8761fcce Initial load
duke
parents:
diff changeset
   675
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   676
        * @exception TypeMismatch If val does not contain a valid fixed-point literal or contains extraneous
02bb8761fcce Initial load
duke
parents:
diff changeset
   677
        *            characters other than leading or trailing white space
02bb8761fcce Initial load
duke
parents:
diff changeset
   678
        * @exception InvalidValue If val contains a value whose scale exceeds that of the DynFixed
02bb8761fcce Initial load
duke
parents:
diff changeset
   679
        *            or is not initialized
02bb8761fcce Initial load
duke
parents:
diff changeset
   680
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   681
        boolean set_value(in string val)
02bb8761fcce Initial load
duke
parents:
diff changeset
   682
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   683
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   684
02bb8761fcce Initial load
duke
parents:
diff changeset
   685
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   686
    * DynEnum objects support the manipulation of IDL enumerated values.
02bb8761fcce Initial load
duke
parents:
diff changeset
   687
    * The current position of a DynEnum is always -1.
02bb8761fcce Initial load
duke
parents:
diff changeset
   688
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   689
    interface DynEnum : DynAny {
02bb8761fcce Initial load
duke
parents:
diff changeset
   690
	#pragma sun_localservant DynEnum ""
02bb8761fcce Initial load
duke
parents:
diff changeset
   691
02bb8761fcce Initial load
duke
parents:
diff changeset
   692
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   693
        * Returns the value of the DynEnum as an IDL identifier.
02bb8761fcce Initial load
duke
parents:
diff changeset
   694
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   695
        string get_as_string();
02bb8761fcce Initial load
duke
parents:
diff changeset
   696
02bb8761fcce Initial load
duke
parents:
diff changeset
   697
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   698
        * Sets the value of the DynEnum to the enumerated value whose IDL identifier is passed in the value parameter.
02bb8761fcce Initial load
duke
parents:
diff changeset
   699
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   700
        * @exception InvalidValue If value contains a string that is not a valid IDL identifier
02bb8761fcce Initial load
duke
parents:
diff changeset
   701
        *            for the corresponding enumerated type
02bb8761fcce Initial load
duke
parents:
diff changeset
   702
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   703
        void set_as_string(in string value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   704
            raises(InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   705
02bb8761fcce Initial load
duke
parents:
diff changeset
   706
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   707
        * Returns the value of the DynEnum as the enumerated value's ordinal value.
02bb8761fcce Initial load
duke
parents:
diff changeset
   708
        * Enumerators have ordinal values 0 to n-1, as they appear from left to right
02bb8761fcce Initial load
duke
parents:
diff changeset
   709
        * in the corresponding IDL definition.
02bb8761fcce Initial load
duke
parents:
diff changeset
   710
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   711
        unsigned long get_as_ulong();
02bb8761fcce Initial load
duke
parents:
diff changeset
   712
02bb8761fcce Initial load
duke
parents:
diff changeset
   713
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   714
        * Sets the value of the DynEnum as the enumerated value's ordinal value.
02bb8761fcce Initial load
duke
parents:
diff changeset
   715
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   716
        * @exception InvalidValue If value contains a value that is outside the range of ordinal values
02bb8761fcce Initial load
duke
parents:
diff changeset
   717
        *            for the corresponding enumerated type
02bb8761fcce Initial load
duke
parents:
diff changeset
   718
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   719
        void set_as_ulong(in unsigned long value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   720
            raises(InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   721
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   722
02bb8761fcce Initial load
duke
parents:
diff changeset
   723
    typedef string FieldName;
02bb8761fcce Initial load
duke
parents:
diff changeset
   724
02bb8761fcce Initial load
duke
parents:
diff changeset
   725
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   726
    * NameValuePairs associate a name with an Any object.
02bb8761fcce Initial load
duke
parents:
diff changeset
   727
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   728
    struct NameValuePair {
02bb8761fcce Initial load
duke
parents:
diff changeset
   729
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   730
        * The name associated with the Any.
02bb8761fcce Initial load
duke
parents:
diff changeset
   731
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   732
        FieldName id;
02bb8761fcce Initial load
duke
parents:
diff changeset
   733
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   734
        * The Any value associated with the name.
02bb8761fcce Initial load
duke
parents:
diff changeset
   735
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   736
        any value;
02bb8761fcce Initial load
duke
parents:
diff changeset
   737
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   738
    typedef sequence<NameValuePair> NameValuePairSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   739
02bb8761fcce Initial load
duke
parents:
diff changeset
   740
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   741
    * NameDynAnyPairs associate a name with an DynAny object.
02bb8761fcce Initial load
duke
parents:
diff changeset
   742
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   743
    struct NameDynAnyPair {
02bb8761fcce Initial load
duke
parents:
diff changeset
   744
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   745
        * The name associated with the DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
   746
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   747
        FieldName id;
02bb8761fcce Initial load
duke
parents:
diff changeset
   748
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   749
        * The DynAny value associated with the name.
02bb8761fcce Initial load
duke
parents:
diff changeset
   750
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   751
        DynAny value;
02bb8761fcce Initial load
duke
parents:
diff changeset
   752
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   753
    typedef sequence<NameDynAnyPair> NameDynAnyPairSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   754
02bb8761fcce Initial load
duke
parents:
diff changeset
   755
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   756
    * DynStruct objects support the manipulation of IDL struct and exception values.
02bb8761fcce Initial load
duke
parents:
diff changeset
   757
    * Members of the exceptions are handled in the same way as members of a struct.
02bb8761fcce Initial load
duke
parents:
diff changeset
   758
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   759
    interface DynStruct : DynAny {
02bb8761fcce Initial load
duke
parents:
diff changeset
   760
	#pragma sun_localservant DynStruct ""
02bb8761fcce Initial load
duke
parents:
diff changeset
   761
02bb8761fcce Initial load
duke
parents:
diff changeset
   762
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   763
        * Returns the name of the member at the current position.
02bb8761fcce Initial load
duke
parents:
diff changeset
   764
        * This operation may return an empty string since the TypeCode of the value being
02bb8761fcce Initial load
duke
parents:
diff changeset
   765
        * manipulated may not contain the names of members.
02bb8761fcce Initial load
duke
parents:
diff changeset
   766
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   767
        * @exception TypeMismatch if the DynStruct represents an empty exception.
02bb8761fcce Initial load
duke
parents:
diff changeset
   768
        * @exception InvalidValue if the current position does not indicate a member
02bb8761fcce Initial load
duke
parents:
diff changeset
   769
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   770
        FieldName current_member_name()
02bb8761fcce Initial load
duke
parents:
diff changeset
   771
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   772
02bb8761fcce Initial load
duke
parents:
diff changeset
   773
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   774
        * Returns the TCKind associated with the member at the current position.
02bb8761fcce Initial load
duke
parents:
diff changeset
   775
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   776
        * @exception TypeMismatch if the DynStruct represents an empty exception.
02bb8761fcce Initial load
duke
parents:
diff changeset
   777
        * @exception InvalidValue if the current position does not indicate a member
02bb8761fcce Initial load
duke
parents:
diff changeset
   778
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   779
        CORBA::TCKind current_member_kind()
02bb8761fcce Initial load
duke
parents:
diff changeset
   780
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   781
02bb8761fcce Initial load
duke
parents:
diff changeset
   782
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   783
        * Returns a sequence of NameValuePairs describing the name and the value of each member
02bb8761fcce Initial load
duke
parents:
diff changeset
   784
        * in the struct associated with a DynStruct object.
02bb8761fcce Initial load
duke
parents:
diff changeset
   785
        * The sequence contains members in the same order as the declaration order of members
02bb8761fcce Initial load
duke
parents:
diff changeset
   786
        * as indicated by the DynStruct's TypeCode. The current position is not affected.
02bb8761fcce Initial load
duke
parents:
diff changeset
   787
        * The member names in the returned sequence will be empty strings if the DynStruct's TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
   788
        * does not contain member names.
02bb8761fcce Initial load
duke
parents:
diff changeset
   789
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   790
        NameValuePairSeq get_members();
02bb8761fcce Initial load
duke
parents:
diff changeset
   791
02bb8761fcce Initial load
duke
parents:
diff changeset
   792
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   793
        * Initializes the struct data value associated with a DynStruct object from a sequence of NameValuePairs.
02bb8761fcce Initial load
duke
parents:
diff changeset
   794
        * The operation sets the current position to zero if the passed sequences has non-zero length. Otherwise,
02bb8761fcce Initial load
duke
parents:
diff changeset
   795
        * if an empty sequence is passed, the current position is set to -1.
02bb8761fcce Initial load
duke
parents:
diff changeset
   796
        * <P>Members must appear in the NameValuePairs in the order in which they appear in the IDL specification
02bb8761fcce Initial load
duke
parents:
diff changeset
   797
        * of the struct as indicated by the DynStruct's TypeCode or they must be empty strings.
02bb8761fcce Initial load
duke
parents:
diff changeset
   798
        * The operation makes no attempt to assign member values based on member names.
02bb8761fcce Initial load
duke
parents:
diff changeset
   799
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   800
        * @exception TypeMismatch if the member names supplied in the passed sequence do not match the
02bb8761fcce Initial load
duke
parents:
diff changeset
   801
        *            corresponding member name in the DynStruct's TypeCode and they are not empty strings
02bb8761fcce Initial load
duke
parents:
diff changeset
   802
        * @exception InvalidValue if the passed sequence has a number of elements that disagrees
02bb8761fcce Initial load
duke
parents:
diff changeset
   803
        *            with the number of members as indicated by the DynStruct's TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
   804
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   805
        void set_members(in NameValuePairSeq value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   806
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   807
02bb8761fcce Initial load
duke
parents:
diff changeset
   808
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   809
        * Returns a sequence of NameDynAnyPairs describing the name and the value of each member
02bb8761fcce Initial load
duke
parents:
diff changeset
   810
        * in the struct associated with a DynStruct object.
02bb8761fcce Initial load
duke
parents:
diff changeset
   811
        * The sequence contains members in the same order as the declaration order of members
02bb8761fcce Initial load
duke
parents:
diff changeset
   812
        * as indicated by the DynStruct's TypeCode. The current position is not affected.
02bb8761fcce Initial load
duke
parents:
diff changeset
   813
        * The member names in the returned sequence will be empty strings if the DynStruct's TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
   814
        * does not contain member names.
02bb8761fcce Initial load
duke
parents:
diff changeset
   815
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   816
        NameDynAnyPairSeq get_members_as_dyn_any();
02bb8761fcce Initial load
duke
parents:
diff changeset
   817
02bb8761fcce Initial load
duke
parents:
diff changeset
   818
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   819
        * Initializes the struct data value associated with a DynStruct object from a sequence of NameDynAnyPairs.
02bb8761fcce Initial load
duke
parents:
diff changeset
   820
        * The operation sets the current position to zero if the passed sequences has non-zero length. Otherwise,
02bb8761fcce Initial load
duke
parents:
diff changeset
   821
        * if an empty sequence is passed, the current position is set to -1.
02bb8761fcce Initial load
duke
parents:
diff changeset
   822
        * <P>Members must appear in the NameDynAnyPairs in the order in which they appear in the IDL specification
02bb8761fcce Initial load
duke
parents:
diff changeset
   823
        * of the struct as indicated by the DynStruct's TypeCode or they must be empty strings.
02bb8761fcce Initial load
duke
parents:
diff changeset
   824
        * The operation makes no attempt to assign member values based on member names.
02bb8761fcce Initial load
duke
parents:
diff changeset
   825
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   826
        * @exception TypeMismatch if the member names supplied in the passed sequence do not match the
02bb8761fcce Initial load
duke
parents:
diff changeset
   827
        *            corresponding member name in the DynStruct's TypeCode and they are not empty strings
02bb8761fcce Initial load
duke
parents:
diff changeset
   828
        * @exception InvalidValue if the passed sequence has a number of elements that disagrees
02bb8761fcce Initial load
duke
parents:
diff changeset
   829
        *            with the number of members as indicated by the DynStruct's TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
   830
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   831
        void set_members_as_dyn_any(in NameDynAnyPairSeq value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   832
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   833
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   834
02bb8761fcce Initial load
duke
parents:
diff changeset
   835
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   836
    * DynUnion objects support the manipulation of IDL unions.
02bb8761fcce Initial load
duke
parents:
diff changeset
   837
    * A union can have only two valid current positions:
02bb8761fcce Initial load
duke
parents:
diff changeset
   838
    * <UL>
02bb8761fcce Initial load
duke
parents:
diff changeset
   839
    * <LI>zero, which denotes the discriminator
02bb8761fcce Initial load
duke
parents:
diff changeset
   840
    * <LI>one, which denotes the active member
02bb8761fcce Initial load
duke
parents:
diff changeset
   841
    * </UL>
02bb8761fcce Initial load
duke
parents:
diff changeset
   842
    * The component_count value for a union depends on the current discriminator:
02bb8761fcce Initial load
duke
parents:
diff changeset
   843
    * it is 2 for a union whose discriminator indicates a named member, and 1 otherwise.
02bb8761fcce Initial load
duke
parents:
diff changeset
   844
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   845
    interface DynUnion : DynAny {
02bb8761fcce Initial load
duke
parents:
diff changeset
   846
	#pragma sun_localservant DynUnion ""
02bb8761fcce Initial load
duke
parents:
diff changeset
   847
02bb8761fcce Initial load
duke
parents:
diff changeset
   848
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   849
        * Returns the current discriminator value.
02bb8761fcce Initial load
duke
parents:
diff changeset
   850
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   851
        DynAny get_discriminator();
02bb8761fcce Initial load
duke
parents:
diff changeset
   852
02bb8761fcce Initial load
duke
parents:
diff changeset
   853
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   854
        * Sets the discriminator of the DynUnion to the specified value.
02bb8761fcce Initial load
duke
parents:
diff changeset
   855
        * Setting the discriminator to a value that is consistent with the currently active union member
02bb8761fcce Initial load
duke
parents:
diff changeset
   856
        * does not affect the currently active member. Setting the discriminator to a value that is inconsistent
02bb8761fcce Initial load
duke
parents:
diff changeset
   857
        * with the currently active member deactivates the member and activates the member that is consistent
02bb8761fcce Initial load
duke
parents:
diff changeset
   858
        * with the new discriminator value (if there is a member for that value) by initializing the member
02bb8761fcce Initial load
duke
parents:
diff changeset
   859
        * to its default value.
02bb8761fcce Initial load
duke
parents:
diff changeset
   860
        * Setting the discriminator of a union sets the current position to 0 if the discriminator value
02bb8761fcce Initial load
duke
parents:
diff changeset
   861
        * indicates a non-existent union member (has_no_active_member returns true in this case).
02bb8761fcce Initial load
duke
parents:
diff changeset
   862
        * Otherwise, if the discriminator value indicates a named union member, the current position is set to 1
02bb8761fcce Initial load
duke
parents:
diff changeset
   863
        * (has_no_active_member returns false and component_count returns 2 in this case).
02bb8761fcce Initial load
duke
parents:
diff changeset
   864
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   865
        * @exception TypeMismatch if the TypeCode of the parameter is not equivalent to the TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
   866
        *            of the union's discriminator
02bb8761fcce Initial load
duke
parents:
diff changeset
   867
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   868
        void set_discriminator(in DynAny d)
02bb8761fcce Initial load
duke
parents:
diff changeset
   869
            raises(TypeMismatch);
02bb8761fcce Initial load
duke
parents:
diff changeset
   870
02bb8761fcce Initial load
duke
parents:
diff changeset
   871
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   872
        * Sets the discriminator to a value that is consistent with the value of the default case of a union.
02bb8761fcce Initial load
duke
parents:
diff changeset
   873
        * It sets the current position to zero and causes component_count to return 2.
02bb8761fcce Initial load
duke
parents:
diff changeset
   874
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   875
        * @exception TypeMismatch if the union does not have an explicit default case
02bb8761fcce Initial load
duke
parents:
diff changeset
   876
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   877
        void set_to_default_member()
02bb8761fcce Initial load
duke
parents:
diff changeset
   878
            raises(TypeMismatch);
02bb8761fcce Initial load
duke
parents:
diff changeset
   879
02bb8761fcce Initial load
duke
parents:
diff changeset
   880
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   881
        * Sets the discriminator to a value that does not correspond to any of the unions case labels.
02bb8761fcce Initial load
duke
parents:
diff changeset
   882
        * It sets the current position to zero and causes component_count to return 1.
02bb8761fcce Initial load
duke
parents:
diff changeset
   883
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   884
        * @exception TypeMismatch if the union has an explicit default case or if it uses the entire range
02bb8761fcce Initial load
duke
parents:
diff changeset
   885
        *            of discriminator values for explicit case labels
02bb8761fcce Initial load
duke
parents:
diff changeset
   886
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   887
        void set_to_no_active_member()
02bb8761fcce Initial load
duke
parents:
diff changeset
   888
            raises(TypeMismatch);
02bb8761fcce Initial load
duke
parents:
diff changeset
   889
02bb8761fcce Initial load
duke
parents:
diff changeset
   890
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   891
        * Returns true if the union has no active member, that is, the unions value consists solely
02bb8761fcce Initial load
duke
parents:
diff changeset
   892
        * of its discriminator because the discriminator has a value that is not listed as an explicit case label.
02bb8761fcce Initial load
duke
parents:
diff changeset
   893
        * Calling this operation on a union that has a default case returns false.
02bb8761fcce Initial load
duke
parents:
diff changeset
   894
        * Calling this operation on a union that uses the entire range of discriminator values
02bb8761fcce Initial load
duke
parents:
diff changeset
   895
        * for explicit case labels returns false.
02bb8761fcce Initial load
duke
parents:
diff changeset
   896
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   897
        boolean has_no_active_member();
02bb8761fcce Initial load
duke
parents:
diff changeset
   898
02bb8761fcce Initial load
duke
parents:
diff changeset
   899
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   900
        * Returns the TCKind value of the discriminators TypeCode.
02bb8761fcce Initial load
duke
parents:
diff changeset
   901
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   902
        CORBA::TCKind discriminator_kind();
02bb8761fcce Initial load
duke
parents:
diff changeset
   903
02bb8761fcce Initial load
duke
parents:
diff changeset
   904
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   905
        * Returns the TCKind value of the currently active members TypeCode. 
02bb8761fcce Initial load
duke
parents:
diff changeset
   906
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   907
        * @exception InvalidValue if the union does not have a currently active member
02bb8761fcce Initial load
duke
parents:
diff changeset
   908
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   909
        CORBA::TCKind member_kind()
02bb8761fcce Initial load
duke
parents:
diff changeset
   910
            raises(InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   911
02bb8761fcce Initial load
duke
parents:
diff changeset
   912
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   913
        * Returns the currently active member. Note that the returned reference remains valid only
02bb8761fcce Initial load
duke
parents:
diff changeset
   914
        * for as long as the currently active member does not change. Using the returned reference
02bb8761fcce Initial load
duke
parents:
diff changeset
   915
        * beyond the life time of the currently active member raises OBJECT_NOT_EXIST. 
02bb8761fcce Initial load
duke
parents:
diff changeset
   916
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   917
        * @exception InvalidValue if the union has no active member
02bb8761fcce Initial load
duke
parents:
diff changeset
   918
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   919
        DynAny member()
02bb8761fcce Initial load
duke
parents:
diff changeset
   920
            raises(InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   921
02bb8761fcce Initial load
duke
parents:
diff changeset
   922
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   923
        * Returns the name of the currently active member. If the unions TypeCode does not contain
02bb8761fcce Initial load
duke
parents:
diff changeset
   924
        * a member name for the currently active member, the operation returns an empty string.
02bb8761fcce Initial load
duke
parents:
diff changeset
   925
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   926
        * @exception InvalidValue if the union has no active member
02bb8761fcce Initial load
duke
parents:
diff changeset
   927
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   928
        FieldName member_name()
02bb8761fcce Initial load
duke
parents:
diff changeset
   929
            raises(InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   930
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   931
02bb8761fcce Initial load
duke
parents:
diff changeset
   932
    typedef sequence<any> AnySeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   933
    typedef sequence<DynAny> DynAnySeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   934
02bb8761fcce Initial load
duke
parents:
diff changeset
   935
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   936
    * DynSequence objects support the manipulation of IDL sequences.
02bb8761fcce Initial load
duke
parents:
diff changeset
   937
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   938
    interface DynSequence : DynAny {
02bb8761fcce Initial load
duke
parents:
diff changeset
   939
	#pragma sun_localservant DynSequence ""
02bb8761fcce Initial load
duke
parents:
diff changeset
   940
02bb8761fcce Initial load
duke
parents:
diff changeset
   941
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   942
        * Returns the current length of the sequence.
02bb8761fcce Initial load
duke
parents:
diff changeset
   943
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   944
        unsigned long get_length();
02bb8761fcce Initial load
duke
parents:
diff changeset
   945
02bb8761fcce Initial load
duke
parents:
diff changeset
   946
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   947
        * Sets the length of the sequence.
02bb8761fcce Initial load
duke
parents:
diff changeset
   948
        * Increasing the length of a sequence adds new elements at the tail without affecting the values
02bb8761fcce Initial load
duke
parents:
diff changeset
   949
        * of already existing elements. Newly added elements are default-initialized.
02bb8761fcce Initial load
duke
parents:
diff changeset
   950
        * Increasing the length of a sequence sets the current position to the first newly-added element
02bb8761fcce Initial load
duke
parents:
diff changeset
   951
        * if the previous current position was -1. Otherwise, if the previous current position was not -1,
02bb8761fcce Initial load
duke
parents:
diff changeset
   952
        * the current position is not affected.
02bb8761fcce Initial load
duke
parents:
diff changeset
   953
        * Decreasing the length of a sequence removes elements from the tail without affecting the value
02bb8761fcce Initial load
duke
parents:
diff changeset
   954
        * of those elements that remain. The new current position after decreasing the length of a sequence
02bb8761fcce Initial load
duke
parents:
diff changeset
   955
        * is determined as follows:
02bb8761fcce Initial load
duke
parents:
diff changeset
   956
        * <UL>
02bb8761fcce Initial load
duke
parents:
diff changeset
   957
        * <LI>If the length of the sequence is set to zero, the current position is set to -1.
02bb8761fcce Initial load
duke
parents:
diff changeset
   958
        * <LI>If the current position is -1 before decreasing the length, it remains at -1.
02bb8761fcce Initial load
duke
parents:
diff changeset
   959
        * <LI>If the current position indicates a valid element and that element is not removed when the length
02bb8761fcce Initial load
duke
parents:
diff changeset
   960
        *     is decreased, the current position remains unaffected.
02bb8761fcce Initial load
duke
parents:
diff changeset
   961
        * <LI>If the current position indicates a valid element and that element is removed,
02bb8761fcce Initial load
duke
parents:
diff changeset
   962
        *     the current position is set to -1.
02bb8761fcce Initial load
duke
parents:
diff changeset
   963
        * </UL>
02bb8761fcce Initial load
duke
parents:
diff changeset
   964
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   965
        * @exception InvalidValue if this is a bounded sequence and len is larger than the bound
02bb8761fcce Initial load
duke
parents:
diff changeset
   966
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   967
        void set_length(in unsigned long len)
02bb8761fcce Initial load
duke
parents:
diff changeset
   968
            raises(InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   969
02bb8761fcce Initial load
duke
parents:
diff changeset
   970
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   971
        * Returns the elements of the sequence.
02bb8761fcce Initial load
duke
parents:
diff changeset
   972
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   973
        AnySeq get_elements();
02bb8761fcce Initial load
duke
parents:
diff changeset
   974
02bb8761fcce Initial load
duke
parents:
diff changeset
   975
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   976
        * Sets the elements of a sequence.
02bb8761fcce Initial load
duke
parents:
diff changeset
   977
        * The length of the DynSequence is set to the length of value. The current position is set to zero
02bb8761fcce Initial load
duke
parents:
diff changeset
   978
        * if value has non-zero length and to -1 if value is a zero-length sequence.
02bb8761fcce Initial load
duke
parents:
diff changeset
   979
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   980
        * @exception TypeMismatch if value contains one or more elements whose TypeCode is not equivalent
02bb8761fcce Initial load
duke
parents:
diff changeset
   981
        *            to the element TypeCode of the DynSequence
02bb8761fcce Initial load
duke
parents:
diff changeset
   982
        * @exception InvalidValue if the length of value exceeds the bound of a bounded sequence
02bb8761fcce Initial load
duke
parents:
diff changeset
   983
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   984
        void set_elements(in AnySeq value)
02bb8761fcce Initial load
duke
parents:
diff changeset
   985
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
   986
02bb8761fcce Initial load
duke
parents:
diff changeset
   987
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   988
        * Returns the DynAnys representing the elements of the sequence.
02bb8761fcce Initial load
duke
parents:
diff changeset
   989
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
   990
        DynAnySeq get_elements_as_dyn_any();
02bb8761fcce Initial load
duke
parents:
diff changeset
   991
02bb8761fcce Initial load
duke
parents:
diff changeset
   992
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   993
        * Sets the elements of a sequence using DynAnys.
02bb8761fcce Initial load
duke
parents:
diff changeset
   994
        * The length of the DynSequence is set to the length of value. The current position is set to zero
02bb8761fcce Initial load
duke
parents:
diff changeset
   995
        * if value has non-zero length and to -1 if value is a zero-length sequence.
02bb8761fcce Initial load
duke
parents:
diff changeset
   996
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
   997
        * @exception TypeMismatch if value contains one or more elements whose TypeCode is not equivalent
02bb8761fcce Initial load
duke
parents:
diff changeset
   998
        *            to the element TypeCode of the DynSequence
02bb8761fcce Initial load
duke
parents:
diff changeset
   999
        * @exception InvalidValue if the length of value exceeds the bound of a bounded sequence
02bb8761fcce Initial load
duke
parents:
diff changeset
  1000
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1001
        void set_elements_as_dyn_any(in DynAnySeq value)
02bb8761fcce Initial load
duke
parents:
diff changeset
  1002
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1003
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
  1004
02bb8761fcce Initial load
duke
parents:
diff changeset
  1005
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1006
    * DynArray objects support the manipulation of IDL arrays.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1007
    * Note that the dimension of the array is contained in the TypeCode which is accessible
02bb8761fcce Initial load
duke
parents:
diff changeset
  1008
    * through the type attribute. It can also be obtained by calling the component_count operation.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1009
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1010
    interface DynArray : DynAny {
02bb8761fcce Initial load
duke
parents:
diff changeset
  1011
	#pragma sun_localservant DynArray ""
02bb8761fcce Initial load
duke
parents:
diff changeset
  1012
02bb8761fcce Initial load
duke
parents:
diff changeset
  1013
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1014
        * Returns the elements of the DynArray.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1015
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1016
        AnySeq get_elements();
02bb8761fcce Initial load
duke
parents:
diff changeset
  1017
02bb8761fcce Initial load
duke
parents:
diff changeset
  1018
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1019
        * Sets the DynArray to contain the passed elements.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1020
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
  1021
        * @exception TypeMismatch if one or more elements have a type that is inconsistent with the DynArrays TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
  1022
        * @exception InvalidValue if the sequence does not contain the same number of elements as the array dimension
02bb8761fcce Initial load
duke
parents:
diff changeset
  1023
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1024
        void set_elements(in AnySeq value)
02bb8761fcce Initial load
duke
parents:
diff changeset
  1025
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1026
02bb8761fcce Initial load
duke
parents:
diff changeset
  1027
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1028
        * Returns the elements of the DynArray as DynAnys.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1029
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1030
        DynAnySeq get_elements_as_dyn_any();
02bb8761fcce Initial load
duke
parents:
diff changeset
  1031
02bb8761fcce Initial load
duke
parents:
diff changeset
  1032
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1033
        * Sets the DynArray to contain the passed elements.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1034
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
  1035
        * @exception TypeMismatch if one or more elements have a type that is inconsistent with the DynArrays TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
  1036
        * @exception InvalidValue if the sequence does not contain the same number of elements as the array dimension
02bb8761fcce Initial load
duke
parents:
diff changeset
  1037
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1038
        void set_elements_as_dyn_any(in DynAnySeq value)
02bb8761fcce Initial load
duke
parents:
diff changeset
  1039
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1040
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
  1041
02bb8761fcce Initial load
duke
parents:
diff changeset
  1042
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1043
    * DynValueCommon provides operations supported by both the DynValue and DynValueBox interfaces.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1044
    */
149
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
  1045
    interface DynValueCommon : DynAny {
4
02bb8761fcce Initial load
duke
parents:
diff changeset
  1046
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1047
        * Returns true if the DynValueCommon represents a null value type.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1048
        */
149
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
  1049
        boolean is_null();
4
02bb8761fcce Initial load
duke
parents:
diff changeset
  1050
02bb8761fcce Initial load
duke
parents:
diff changeset
  1051
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1052
        * Changes the representation of a DynValueCommon to a null value type.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1053
        */
149
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
  1054
        void set_to_null();
4
02bb8761fcce Initial load
duke
parents:
diff changeset
  1055
02bb8761fcce Initial load
duke
parents:
diff changeset
  1056
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1057
        * Replaces a null value type with a newly constructed value. Its components are initialized
02bb8761fcce Initial load
duke
parents:
diff changeset
  1058
        * to default values as in DynAnyFactory.create_dyn_any_from_type_code.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1059
        * If the DynValueCommon represents a non-null value type, then this operation has no effect. 
02bb8761fcce Initial load
duke
parents:
diff changeset
  1060
        */
149
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
  1061
        void set_to_value();
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
  1062
    }; 
4
02bb8761fcce Initial load
duke
parents:
diff changeset
  1063
02bb8761fcce Initial load
duke
parents:
diff changeset
  1064
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1065
    * DynValue objects support the manipulation of IDL non-boxed value types.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1066
    * The DynValue interface can represent both null and non-null value types.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1067
    * For a DynValue representing a non-null value type, the DynValue's components comprise
02bb8761fcce Initial load
duke
parents:
diff changeset
  1068
    * the public and private members of the value type, including those inherited from concrete base value types,
02bb8761fcce Initial load
duke
parents:
diff changeset
  1069
    * in the order of definition. A DynValue representing a null value type has no components
02bb8761fcce Initial load
duke
parents:
diff changeset
  1070
    * and a current position of -1.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1071
    * <P>Warning: Indiscriminantly changing the contents of private value type members can cause the value type
02bb8761fcce Initial load
duke
parents:
diff changeset
  1072
    * implementation to break by violating internal constraints. Access to private members is provided to support
02bb8761fcce Initial load
duke
parents:
diff changeset
  1073
    * such activities as ORB bridging and debugging and should not be used to arbitrarily violate
02bb8761fcce Initial load
duke
parents:
diff changeset
  1074
    * the encapsulation of the value type. 
02bb8761fcce Initial load
duke
parents:
diff changeset
  1075
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1076
    interface DynValue : DynValueCommon {
02bb8761fcce Initial load
duke
parents:
diff changeset
  1077
	#pragma sun_localservant DynValue ""
02bb8761fcce Initial load
duke
parents:
diff changeset
  1078
02bb8761fcce Initial load
duke
parents:
diff changeset
  1079
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1080
        * Returns the name of the member at the current position.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1081
        * This operation may return an empty string since the TypeCode of the value being
02bb8761fcce Initial load
duke
parents:
diff changeset
  1082
        * manipulated may not contain the names of members.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1083
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
  1084
        * @exception TypeMismatch if the DynValue represents a null value type.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1085
        * @exception InvalidValue if the current position does not indicate a member
02bb8761fcce Initial load
duke
parents:
diff changeset
  1086
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1087
        FieldName current_member_name()
02bb8761fcce Initial load
duke
parents:
diff changeset
  1088
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1089
02bb8761fcce Initial load
duke
parents:
diff changeset
  1090
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1091
        * Returns the TCKind associated with the member at the current position.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1092
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
  1093
        * @exception TypeMismatch if the DynValue represents a null value type.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1094
        * @exception InvalidValue if the current position does not indicate a member
02bb8761fcce Initial load
duke
parents:
diff changeset
  1095
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1096
        CORBA::TCKind current_member_kind()
02bb8761fcce Initial load
duke
parents:
diff changeset
  1097
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1098
02bb8761fcce Initial load
duke
parents:
diff changeset
  1099
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1100
        * Returns a sequence of NameValuePairs describing the name and the value of each member
02bb8761fcce Initial load
duke
parents:
diff changeset
  1101
        * in the value type.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1102
        * The sequence contains members in the same order as the declaration order of members
02bb8761fcce Initial load
duke
parents:
diff changeset
  1103
        * as indicated by the DynValue's TypeCode. The current position is not affected.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1104
        * The member names in the returned sequence will be empty strings if the DynValue's TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
  1105
        * does not contain member names.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1106
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
  1107
        * @exception InvalidValue if this object represents a null value type
02bb8761fcce Initial load
duke
parents:
diff changeset
  1108
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1109
        NameValuePairSeq get_members()
02bb8761fcce Initial load
duke
parents:
diff changeset
  1110
            raises(InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1111
02bb8761fcce Initial load
duke
parents:
diff changeset
  1112
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1113
        * Initializes the value type's members from a sequence of NameValuePairs.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1114
        * The operation sets the current position to zero if the passed sequences has non-zero length. Otherwise,
02bb8761fcce Initial load
duke
parents:
diff changeset
  1115
        * if an empty sequence is passed, the current position is set to -1.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1116
        * A null value type can be initialized to a non-null value type using this method.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1117
        * <P>Members must appear in the NameValuePairs in the order in which they appear in the IDL specification
02bb8761fcce Initial load
duke
parents:
diff changeset
  1118
        * of the value type as indicated by the DynValue's TypeCode or they must be empty strings.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1119
        * The operation makes no attempt to assign member values based on member names.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1120
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
  1121
        * @exception TypeMismatch if the member names supplied in the passed sequence do not match the
02bb8761fcce Initial load
duke
parents:
diff changeset
  1122
        *            corresponding member name in the DynValue's TypeCode and they are not empty strings
02bb8761fcce Initial load
duke
parents:
diff changeset
  1123
        * @exception InvalidValue if the passed sequence has a number of elements that disagrees
02bb8761fcce Initial load
duke
parents:
diff changeset
  1124
        *            with the number of members as indicated by the DynValue's TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
  1125
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1126
        void set_members(in NameValuePairSeq value)
02bb8761fcce Initial load
duke
parents:
diff changeset
  1127
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1128
02bb8761fcce Initial load
duke
parents:
diff changeset
  1129
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1130
        * Returns a sequence of NameDynAnyPairs describing the name and the value of each member
02bb8761fcce Initial load
duke
parents:
diff changeset
  1131
        * in the value type.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1132
        * The sequence contains members in the same order as the declaration order of members
02bb8761fcce Initial load
duke
parents:
diff changeset
  1133
        * as indicated by the DynValue's TypeCode. The current position is not affected.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1134
        * The member names in the returned sequence will be empty strings if the DynValue's TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
  1135
        * does not contain member names.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1136
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
  1137
        * @exception InvalidValue if this object represents a null value type
02bb8761fcce Initial load
duke
parents:
diff changeset
  1138
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1139
        NameDynAnyPairSeq get_members_as_dyn_any()
02bb8761fcce Initial load
duke
parents:
diff changeset
  1140
            raises(InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1141
02bb8761fcce Initial load
duke
parents:
diff changeset
  1142
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1143
        * Initializes the value type's members from a sequence of NameDynAnyPairs.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1144
        * The operation sets the current position to zero if the passed sequences has non-zero length. Otherwise,
02bb8761fcce Initial load
duke
parents:
diff changeset
  1145
        * if an empty sequence is passed, the current position is set to -1.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1146
        * A null value type can be initialized to a non-null value type using this method.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1147
        * <P>Members must appear in the NameDynAnyPairs in the order in which they appear in the IDL specification
02bb8761fcce Initial load
duke
parents:
diff changeset
  1148
        * of the value type as indicated by the DynValue's TypeCode or they must be empty strings.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1149
        * The operation makes no attempt to assign member values based on member names.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1150
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
  1151
        * @exception TypeMismatch if the member names supplied in the passed sequence do not match the
02bb8761fcce Initial load
duke
parents:
diff changeset
  1152
        *            corresponding member name in the DynValue's TypeCode and they are not empty strings
02bb8761fcce Initial load
duke
parents:
diff changeset
  1153
        * @exception InvalidValue if the passed sequence has a number of elements that disagrees
02bb8761fcce Initial load
duke
parents:
diff changeset
  1154
        *            with the number of members as indicated by the DynValue's TypeCode
02bb8761fcce Initial load
duke
parents:
diff changeset
  1155
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1156
        void set_members_as_dyn_any(in NameDynAnyPairSeq value)
02bb8761fcce Initial load
duke
parents:
diff changeset
  1157
            raises(TypeMismatch, InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1158
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
  1159
02bb8761fcce Initial load
duke
parents:
diff changeset
  1160
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1161
    * DynValueBox objects support the manipulation of IDL boxed value types.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1162
    * The DynValueBox interface can represent both null and non-null value types.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1163
    * For a DynValueBox representing a non-null value type, the DynValueBox has a single component
02bb8761fcce Initial load
duke
parents:
diff changeset
  1164
    * of the boxed type. A DynValueBox representing a null value type has no components
02bb8761fcce Initial load
duke
parents:
diff changeset
  1165
    * and a current position of -1.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1166
    */
149
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
  1167
    interface DynValueBox : DynValueCommon {
4
02bb8761fcce Initial load
duke
parents:
diff changeset
  1168
02bb8761fcce Initial load
duke
parents:
diff changeset
  1169
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1170
        * Returns the boxed value as an Any.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1171
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
  1172
        * @exception InvalidValue if this object represents a null value box type
02bb8761fcce Initial load
duke
parents:
diff changeset
  1173
        */
149
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
  1174
        any get_boxed_value()
4
02bb8761fcce Initial load
duke
parents:
diff changeset
  1175
            raises(InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1176
02bb8761fcce Initial load
duke
parents:
diff changeset
  1177
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1178
        * Replaces the boxed value with the specified value.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1179
        * If the DynBoxedValue represents a null valuetype, it is converted to a non-null value.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1180
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
  1181
        * @exception TypeMismatch if this object represents a non-null value box type and the type
02bb8761fcce Initial load
duke
parents:
diff changeset
  1182
        *            of the parameter is not matching the current boxed value type.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1183
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1184
        void set_boxed_value(in any boxed)
02bb8761fcce Initial load
duke
parents:
diff changeset
  1185
            raises(TypeMismatch);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1186
02bb8761fcce Initial load
duke
parents:
diff changeset
  1187
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1188
        * Returns the boxed value as a DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1189
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
  1190
        * @exception InvalidValue if this object represents a null value box type
02bb8761fcce Initial load
duke
parents:
diff changeset
  1191
        */
149
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
  1192
        DynAny get_boxed_value_as_dyn_any()
4
02bb8761fcce Initial load
duke
parents:
diff changeset
  1193
            raises(InvalidValue);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1194
02bb8761fcce Initial load
duke
parents:
diff changeset
  1195
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1196
        * Replaces the boxed value with the value contained in the parameter.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1197
        * If the DynBoxedValue represents a null valuetype, it is converted to a non-null value.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1198
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
  1199
        * @exception TypeMismatch if this object represents a non-null value box type and the type
02bb8761fcce Initial load
duke
parents:
diff changeset
  1200
        *            of the parameter is not matching the current boxed value type.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1201
        */
149
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
  1202
        void set_boxed_value_as_dyn_any(in DynAny boxed)
4
02bb8761fcce Initial load
duke
parents:
diff changeset
  1203
            raises(TypeMismatch);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1204
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
  1205
02bb8761fcce Initial load
duke
parents:
diff changeset
  1206
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1207
    * DynAny objects can be created by invoking operations on the DynAnyFactory object.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1208
    * Generally there are only two ways to create a DynAny object:
02bb8761fcce Initial load
duke
parents:
diff changeset
  1209
    * <UL>
02bb8761fcce Initial load
duke
parents:
diff changeset
  1210
    * <LI>invoking an operation on an existing DynAny object
02bb8761fcce Initial load
duke
parents:
diff changeset
  1211
    * <LI>invoking an operation on a DynAnyFactory object
02bb8761fcce Initial load
duke
parents:
diff changeset
  1212
    * </UL>
02bb8761fcce Initial load
duke
parents:
diff changeset
  1213
    * A constructed DynAny object supports operations that enable the creation of new DynAny
02bb8761fcce Initial load
duke
parents:
diff changeset
  1214
    * objects encapsulating access to the value of some constituent.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1215
    * DynAny objects also support the copy operation for creating new DynAny objects.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1216
    * A reference to the DynAnyFactory object is obtained by calling ORB.resolve_initial_references()
02bb8761fcce Initial load
duke
parents:
diff changeset
  1217
    * with the identifier parameter set to the string constant "DynAnyFactory".
02bb8761fcce Initial load
duke
parents:
diff changeset
  1218
    * <P>Dynamic interpretation of an any usually involves creating a DynAny object using create_dyn_any()
02bb8761fcce Initial load
duke
parents:
diff changeset
  1219
    * as the first step. Depending on the type of the any, the resulting DynAny object reference can be narrowed
02bb8761fcce Initial load
duke
parents:
diff changeset
  1220
    * to a DynFixed, DynStruct, DynSequence, DynArray, DynUnion, DynEnum, or DynValue object reference.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1221
    * <P>Dynamic creation of an any involves creating a DynAny object using create_dyn_any_from_type_code(),
02bb8761fcce Initial load
duke
parents:
diff changeset
  1222
    * passing the TypeCode associated with the value to be created. The returned reference is narrowed to one of
02bb8761fcce Initial load
duke
parents:
diff changeset
  1223
    * the complex types, such as DynStruct, if appropriate. Then, the value can be initialized by means of
02bb8761fcce Initial load
duke
parents:
diff changeset
  1224
    * invoking operations on the resulting object. Finally, the to_any operation can be invoked
02bb8761fcce Initial load
duke
parents:
diff changeset
  1225
    * to create an any value from the constructed DynAny.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1226
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1227
    interface DynAnyFactory {
02bb8761fcce Initial load
duke
parents:
diff changeset
  1228
	#pragma sun_localservant DynAnyFactory ""
02bb8761fcce Initial load
duke
parents:
diff changeset
  1229
        exception InconsistentTypeCode {};
02bb8761fcce Initial load
duke
parents:
diff changeset
  1230
02bb8761fcce Initial load
duke
parents:
diff changeset
  1231
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1232
        * Creates a new DynAny object from an any value.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1233
        * A copy of the TypeCode associated with the any value is assigned to the resulting DynAny object.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1234
        * The value associated with the DynAny object is a copy of the value in the original any.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1235
        * The current position of the created DynAny is set to zero if the passed value has components,
02bb8761fcce Initial load
duke
parents:
diff changeset
  1236
        * to -1 otherwise
02bb8761fcce Initial load
duke
parents:
diff changeset
  1237
        *
02bb8761fcce Initial load
duke
parents:
diff changeset
  1238
        * @exception InconsistentTypeCode if value has a TypeCode with a TCKind of tk_Principal,
02bb8761fcce Initial load
duke
parents:
diff changeset
  1239
        * tk_native, or tk_abstract_interface
02bb8761fcce Initial load
duke
parents:
diff changeset
  1240
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1241
        DynAny create_dyn_any(in any value)
02bb8761fcce Initial load
duke
parents:
diff changeset
  1242
            raises(InconsistentTypeCode);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1243
02bb8761fcce Initial load
duke
parents:
diff changeset
  1244
        /**
02bb8761fcce Initial load
duke
parents:
diff changeset
  1245
        * Creates a DynAny from a TypeCode. Depending on the TypeCode, the created object may be of type DynAny,
02bb8761fcce Initial load
duke
parents:
diff changeset
  1246
        * or one of its derived types, such as DynStruct. The returned reference can be narrowed to the derived type.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1247
        * In all cases, a DynAny constructed from a TypeCode has an initial default value.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1248
        * The default values of basic types are:
02bb8761fcce Initial load
duke
parents:
diff changeset
  1249
        * <UL>
02bb8761fcce Initial load
duke
parents:
diff changeset
  1250
        * <LI>false for boolean
02bb8761fcce Initial load
duke
parents:
diff changeset
  1251
        * <LI>zero for numeric types
02bb8761fcce Initial load
duke
parents:
diff changeset
  1252
        * <LI>zero for types octet, char, and wchar
02bb8761fcce Initial load
duke
parents:
diff changeset
  1253
        * <LI>the empty string for string and wstring
02bb8761fcce Initial load
duke
parents:
diff changeset
  1254
        * <LI>null for object references
02bb8761fcce Initial load
duke
parents:
diff changeset
  1255
        * <LI>a type code with a TCKind value of tk_null for type codes
02bb8761fcce Initial load
duke
parents:
diff changeset
  1256
        * <LI>for any values, an any containing a type code with a TCKind value of tk_null type and no value
02bb8761fcce Initial load
duke
parents:
diff changeset
  1257
        * </UL>
02bb8761fcce Initial load
duke
parents:
diff changeset
  1258
        * For complex types, creation of the corresponding DynAny assigns a default value as follows:
02bb8761fcce Initial load
duke
parents:
diff changeset
  1259
        * <UL>
02bb8761fcce Initial load
duke
parents:
diff changeset
  1260
        * <LI>For DynSequence it sets the current position to -1 and creates an empty sequence.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1261
        * <LI>For DynEnum it sets the current position to -1 and sets the value of the enumerator
02bb8761fcce Initial load
duke
parents:
diff changeset
  1262
        *     to the first enumerator value indicated by the TypeCode.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1263
        * <LI>For DynFixed it sets the current position to -1 and sets the value zero.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1264
        * <LI>For DynStruct it sets the current position to -1 for empty exceptions
02bb8761fcce Initial load
duke
parents:
diff changeset
  1265
        *     and to zero for all other TypeCodes. The members (if any) are (recursively) initialized
02bb8761fcce Initial load
duke
parents:
diff changeset
  1266
        *     to their default values.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1267
        * <LI>For DynArray sets the current position to zero and (recursively) initializes elements
02bb8761fcce Initial load
duke
parents:
diff changeset
  1268
        *     to their default value.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1269
        * <LI>For DynUnion sets the current position to zero. The discriminator value is set
02bb8761fcce Initial load
duke
parents:
diff changeset
  1270
        *     to a value consistent with the first named member of the union. That member is activated and (recursively)
02bb8761fcce Initial load
duke
parents:
diff changeset
  1271
        *     initialized to its default value.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1272
        * <LI>For DynValue and DynValueBox it initializes to a null value.
02bb8761fcce Initial load
duke
parents:
diff changeset
  1273
        * </UL>
02bb8761fcce Initial load
duke
parents:
diff changeset
  1274
        */
02bb8761fcce Initial load
duke
parents:
diff changeset
  1275
        DynAny create_dyn_any_from_type_code(in CORBA::TypeCode type)
02bb8761fcce Initial load
duke
parents:
diff changeset
  1276
            raises(InconsistentTypeCode);
02bb8761fcce Initial load
duke
parents:
diff changeset
  1277
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
  1278
}; // module DynamicAny
02bb8761fcce Initial load
duke
parents:
diff changeset
  1279
02bb8761fcce Initial load
duke
parents:
diff changeset
  1280
#endif // _DYNAMIC_ANY_IDL_