Fri, 24 Sep 2010 22:42:14 -0700
6891766: Vulnerabilities in use of reflection in CORBA
Reviewed-by: hawtin
1 /*
2 * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
26 package org.omg.CORBA;
28 import org.omg.CORBA.portable.InputStream;
29 import org.omg.CORBA.portable.OutputStream;
30 import org.omg.CORBA.portable.Streamable;
31 import org.omg.CORBA.portable.IDLEntity;
33 /**
34 * Serves as a container for any data that can be
35 * described in IDL or for any IDL primitive type.
36 * An <code>Any</code> object is used as a component of a
37 * <code>NamedValue</code> object, which provides information about
38 * arguments or return values in requests, and which is used to define
39 * name/value pairs in <code>Context</code> objects.
40 <p>
41 *
42 * An <code>Any</code> object consists of two parts:
43 * <OL>
44 * <LI>a data value
45 * <LI>a <code>TypeCode</code> object describing the type of the data
46 * value contained in the <code>Any</code> object. For example,
47 * a <code>TypeCode</code> object for an array contains
48 * a field for the length of the array and a field for
49 * the type of elements in the array. (Note that in this case, the
50 * second field of the <code>TypeCode</code> object is itself a
51 * <code>TypeCode</code> object.)
52 * </OL>
53 *
54 * <P>
55 * <a name="anyOps"</a>
56 * A large part of the <code>Any</code> class consists of pairs of methods
57 * for inserting values into and extracting values from an
58 * <code>Any</code> object.
59 * <P>
60 * For a given primitive type X, these methods are:
61 * <dl>
62 * <dt><code><bold> void insert_X(X x)</bold></code>
63 * <dd> This method allows the insertion of
64 * an instance <code>x</code> of primitive type <code>X</code>
65 * into the <code>value</code> field of the <code>Any</code> object.
66 * Note that the method
67 * <code>insert_X</code> also resets the <code>Any</code> object's
68 * <code>type</code> field if necessary.
69 * <dt> <code><bold>X extract_X()</bold></code>
70 * <dd> This method allows the extraction of an instance of
71 * type <code>X</code> from the <code>Any</code> object.
72 * <BR>
73 * <P>
74 * This method throws the exception <code>BAD_OPERATION</code> under two conditions:
75 * <OL>
76 * <LI> the type of the element contained in the <code>Any</code> object is not
77 * <code>X</code>
78 * <LI> the method <code>extract_X</code> is called before
79 * the <code>value</code> field of the <code>Any</code> object
80 * has been set
81 * </OL>
82 * </dl>
83 * <P>
84 * There are distinct method pairs for each
85 * primitive IDL data type (<code>insert_long</code> and <code>extract_long</code>,
86 * <code>insert_string</code> and <code>extract_string</code>, and so on).<BR>
87 * <P>
88 * The class <code>Any</code> also has methods for
89 * getting and setting the type code,
90 * for testing two <code>Any</code> objects for equality,
91 * and for reading an <code>Any</code> object from a stream or
92 * writing it to a stream.
93 * <BR>
94 * @since JDK1.2
95 */
96 abstract public class Any implements IDLEntity {
98 /**
99 * Checks for equality between this <code>Any</code> object and the
100 * given <code>Any</code> object. Two <code>Any</code> objects are
101 * equal if both their values and type codes are equal.
102 *
103 * @param a the <code>Any</code> object to test for equality
104 * @return <code>true</code> if the <code>Any</code> objects are equal;
105 * <code>false</code> otherwise
106 * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
107 * comments for unimplemented features</a>
108 */
109 abstract public boolean equal(Any a);
111 /**
112 * Returns type information for the element contained in this
113 * <code>Any</code> object.
114 *
115 * @return the <code>TypeCode</code> object containing type information
116 * about the value contained in this <code>Any</code> object
117 */
118 abstract public TypeCode type();
120 /**
121 * Sets this <code>Any</code> object's <code>type</code> field
122 * to the given <code>TypeCode</code> object and clears its value.
123 * <P>
124 * Note that using this method to set the type code wipes out the
125 * value if there is one. The method
126 * is provided primarily so that the type may be set properly for
127 * IDL <code>out</code> parameters. Generally, setting the type
128 * is done by the <code>insert_X</code> methods, which will set the type
129 * to X if it is not already set to X.
130 *
131 * @param t the <code>TypeCode</code> object giving
132 * information for the value in
133 * this <code>Any</code> object
134 */
135 abstract public void type(TypeCode t);
137 ///////////////////////////////////////////////////////////////////////////
138 // marshalling/unmarshalling routines
140 /**
141 * Reads off (unmarshals) the value of an <code>Any</code> object from
142 * the given input stream using the given typecode.
143 *
144 * @param is the <code>org.omg.CORBA.portable.InputStream</code>
145 * object from which to read
146 * the value contained in this <code>Any</code> object
147 *
148 * @param t a <code>TypeCode</code> object containing type information
149 * about the value to be read
150 *
151 * @exception MARSHAL when the given <code>TypeCode</code> object is
152 * not consistent with the value that was contained
153 * in the input stream
154 */
155 abstract public void read_value(InputStream is, TypeCode t)
156 throws MARSHAL;
158 /**
159 * Writes out the value of this <code>Any</code> object
160 * to the given output stream. If both <code>typecode</code>
161 * and <code>value</code> need to be written, use
162 * <code>create_output_stream()</code> to create an <code>OutputStream</code>,
163 * then use <code>write_any</code> on the <code>OutputStream</code>.
164 * <P>
165 * If this method is called on an <code>Any</code> object that has not
166 * had a value inserted into its <code>value</code> field, it will throw
167 * the exception <code>java.lang.NullPointerException</code>.
168 *
169 * @param os the <code>org.omg.CORBA.portable.OutputStream</code>
170 * object into which to marshal the value
171 * of this <code>Any</code> object
172 *
173 */
174 abstract public void write_value(OutputStream os);
176 /**
177 * Creates an output stream into which this <code>Any</code> object's
178 * value can be marshalled.
179 *
180 * @return the newly-created <code>OutputStream</code>
181 */
182 abstract public OutputStream create_output_stream();
184 /**
185 * Creates an input stream from which this <code>Any</code> object's value
186 * can be unmarshalled.
187 *
188 * @return the newly-created <code>InputStream</code>
189 */
190 abstract public InputStream create_input_stream();
192 ///////////////////////////////////////////////////////////////////////////
193 // basic insertion/extraction methods
195 /**
196 * Extracts the <code>short</code> in this
197 * <code>Any</code> object's <code>value</code> field.
198 *
199 * @return the <code>short</code> stored in this <code>Any</code> object
200 * @exception BAD_OPERATION if this <code>Any</code> object
201 * contains something other than a <code>short</code> or the
202 * <code>value</code> field has not yet been set
203 */
204 abstract public short extract_short() throws BAD_OPERATION;
206 /**
207 * Inserts the given <code>short</code>
208 * into this <code>Any</code> object's <code>value</code> field.
209 *
210 * @param s the <code>short</code> to insert into this
211 * <code>Any</code> object
212 */
213 abstract public void insert_short(short s);
215 /**
216 * Extracts the <code>int</code> in this
217 * <code>Any</code> object's <code>value</code> field.
218 *
219 * @return the <code>int</code> stored in this <code>Any</code> object
220 * @exception BAD_OPERATION if this <code>Any</code> object
221 * contains something other than an <code>int</code> or the
222 * <code>value</code> field has not yet been set
223 */
224 abstract public int extract_long() throws BAD_OPERATION;
226 /**
227 * Inserts the given <code>int</code>
228 * into this <code>Any</code> object's <code>value</code> field.
229 *
230 * @param l the <code>int</code> to insert into this
231 * <code>Any</code> object
232 */
233 abstract public void insert_long(int l);
236 /**
237 * Extracts the <code>long</code> in this
238 * <code>Any</code> object's <code>value</code> field.
239 *
240 * @return the <code>long</code> stored in this <code>Any</code> object
241 * @exception BAD_OPERATION if this <code>Any</code> object
242 * contains something other than a <code>long</code> or the
243 * <code>value</code> field has not yet been set
244 */
245 abstract public long extract_longlong() throws BAD_OPERATION;
247 /**
248 * Inserts the given <code>long</code>
249 * into this <code>Any</code> object's <code>value</code> field.
250 *
251 * @param l the <code>long</code> to insert into this
252 * <code>Any</code> object
253 */
254 abstract public void insert_longlong(long l);
256 /**
257 * Extracts the <code>short</code> in this
258 * <code>Any</code> object's <code>value</code> field.
259 *
260 * @return the <code>short</code> stored in this <code>Any</code> object
261 * @exception BAD_OPERATION if this <code>Any</code> object
262 * contains something other than a <code>short</code> or the
263 * <code>value</code> field has not yet been set
264 */
265 abstract public short extract_ushort() throws BAD_OPERATION;
267 /**
268 * Inserts the given <code>short</code>
269 * into this <code>Any</code> object's <code>value</code> field.
270 *
271 * @param s the <code>short</code> to insert into this
272 * <code>Any</code> object
273 */
274 abstract public void insert_ushort(short s);
276 /**
277 * Extracts the <code>int</code> in this
278 * <code>Any</code> object's <code>value</code> field.
279 *
280 * @return the <code>int</code> stored in this <code>Any</code> object
281 * @exception BAD_OPERATION if this <code>Any</code> object
282 * contains something other than an <code>int</code> or the
283 * <code>value</code> field has not yet been set
284 */
285 abstract public int extract_ulong() throws BAD_OPERATION;
287 /**
288 * Inserts the given <code>int</code>
289 * into this <code>Any</code> object's <code>value</code> field.
290 *
291 * @param l the <code>int</code> to insert into this
292 * <code>Any</code> object
293 */
294 abstract public void insert_ulong(int l);
296 /**
297 * Extracts the <code>long</code> in this
298 * <code>Any</code> object's <code>value</code> field.
299 *
300 * @return the <code>long</code> stored in this <code>Any</code> object
301 * @exception BAD_OPERATION if this <code>Any</code> object
302 * contains something other than a <code>long</code> or the
303 * <code>value</code> field has not yet been set
304 */
305 abstract public long extract_ulonglong() throws BAD_OPERATION;
307 /**
308 * Inserts the given <code>long</code>
309 * into this <code>Any</code> object's <code>value</code> field.
310 *
311 * @param l the <code>long</code> to insert into this
312 * <code>Any</code> object
313 */
314 abstract public void insert_ulonglong(long l);
316 /**
317 * Extracts the <code>float</code> in this
318 * <code>Any</code> object's <code>value</code> field.
319 *
320 * @return the <code>float</code> stored in this <code>Any</code> object
321 * @exception BAD_OPERATION if this <code>Any</code> object
322 * contains something other than a <code>float</code> or the
323 * <code>value</code> field has not yet been set
324 */
325 abstract public float extract_float() throws BAD_OPERATION;
327 /**
328 * Inserts the given <code>float</code>
329 * into this <code>Any</code> object's <code>value</code> field.
330 *
331 * @param f the <code>float</code> to insert into this
332 * <code>Any</code> object
333 */
334 abstract public void insert_float(float f);
336 /**
337 * Extracts the <code>double</code> in this
338 * <code>Any</code> object's <code>value</code> field.
339 *
340 * @return the <code>double</code> stored in this <code>Any</code> object
341 * @exception BAD_OPERATION if this <code>Any</code> object
342 * contains something other than a <code>double</code> or the
343 * <code>value</code> field has not yet been set
344 */
345 abstract public double extract_double() throws BAD_OPERATION;
347 /**
348 * Inserts the given <code>double</code>
349 * into this <code>Any</code> object's <code>value</code> field.
350 *
351 * @param d the <code>double</code> to insert into this
352 * <code>Any</code> object
353 */
354 abstract public void insert_double(double d);
356 /**
357 * Extracts the <code>boolean</code> in this
358 * <code>Any</code> object's <code>value</code> field.
359 *
360 * @return the <code>boolean</code> stored in this <code>Any</code> object
361 * @exception BAD_OPERATION if this <code>Any</code> object
362 * contains something other than a <code>boolean</code> or the
363 * <code>value</code> field has not yet been set
364 */
365 abstract public boolean extract_boolean() throws BAD_OPERATION;
367 /**
368 * Inserts the given <code>boolean</code>
369 * into this <code>Any</code> object's <code>value</code> field.
370 *
371 * @param b the <code>boolean</code> to insert into this
372 * <code>Any</code> object
373 */
374 abstract public void insert_boolean(boolean b);
376 /**
377 * Extracts the <code>char</code> in this
378 * <code>Any</code> object's <code>value</code> field.
379 *
380 * @return the <code>char</code> stored in this <code>Any</code> object
381 * @exception BAD_OPERATION if this <code>Any</code> object
382 * contains something other than a <code>char</code> or the
383 * <code>value</code> field has not yet been set
384 */
385 abstract public char extract_char() throws BAD_OPERATION;
387 /**
388 * Inserts the given <code>char</code>
389 * into this <code>Any</code> object's <code>value</code> field.
390 *
391 * @param c the <code>char</code> to insert into this
392 * <code>Any</code> object
393 * @exception DATA_CONVERSION if there is a data conversion
394 * error
395 */
396 abstract public void insert_char(char c) throws DATA_CONVERSION;
398 /**
399 * Extracts the <code>char</code> in this
400 * <code>Any</code> object's <code>value</code> field.
401 *
402 * @return the <code>char</code> stored in this <code>Any</code> object
403 * @exception BAD_OPERATION if this <code>Any</code> object
404 * contains something other than a <code>char</code> or the
405 * <code>value</code> field has not yet been set
406 */
407 abstract public char extract_wchar() throws BAD_OPERATION;
409 /**
410 * Inserts the given <code>char</code>
411 * into this <code>Any</code> object's <code>value</code> field.
412 *
413 * @param c the <code>char</code> to insert into this
414 * <code>Any</code> object
415 */
416 abstract public void insert_wchar(char c);
418 /**
419 * Extracts the <code>byte</code> in this
420 * <code>Any</code> object's <code>value</code> field.
421 *
422 * @return the <code>byte</code> stored in this <code>Any</code> object
423 * @exception BAD_OPERATION if this <code>Any</code> object
424 * contains something other than a <code>byte</code> or the
425 * <code>value</code> field has not yet been set
426 */
427 abstract public byte extract_octet() throws BAD_OPERATION;
429 /**
430 * Inserts the given <code>byte</code>
431 * into this <code>Any</code> object's <code>value</code> field.
432 *
433 * @param b the <code>byte</code> to insert into this
434 * <code>Any</code> object
435 */
436 abstract public void insert_octet(byte b);
438 /**
439 * Extracts the <code>Any</code> object in this
440 * <code>Any</code> object's <code>value</code> field.
441 *
442 * @return the <code>Any</code> object stored in this <code>Any</code> object
443 * @exception BAD_OPERATION if this <code>Any</code> object
444 * contains something other than an <code>Any</code> object or the
445 * <code>value</code> field has not yet been set
446 */
447 abstract public Any extract_any() throws BAD_OPERATION;
449 /**
450 * Inserts the given <code>Any</code> object
451 * into this <code>Any</code> object's <code>value</code> field.
452 *
453 * @param a the <code>Any</code> object to insert into this
454 * <code>Any</code> object
455 */
456 abstract public void insert_any(Any a);
458 /**
459 * Extracts the <code>org.omg.CORBA.Object</code> in this
460 * <code>Any</code> object's <code>value</code> field.
461 *
462 * @return the <code>org.omg.CORBA.Object</code> stored in
463 * this <code>Any</code> object
464 * @exception BAD_OPERATION if this <code>Any</code> object
465 * contains something other than an
466 * <code>org.omg.CORBA.Object</code> or the
467 * <code>value</code> field has not yet been set
468 */
469 abstract public org.omg.CORBA.Object extract_Object() throws BAD_OPERATION;
471 /**
472 * Inserts the given <code>org.omg.CORBA.Object</code> object
473 * into this <code>Any</code> object's <code>value</code> field.
474 *
475 * @param o the <code>org.omg.CORBA.Object</code> object to insert into this
476 * <code>Any</code> object
477 */
478 abstract public void insert_Object(org.omg.CORBA.Object o);
480 /**
481 * Extracts the <code>java.io.Serializable</code> object in this
482 * <code>Any</code> object's <code>value</code> field.
483 *
484 * @return the <code>java.io.Serializable</code> object stored in
485 * this <code>Any</code> object
486 * @exception BAD_OPERATION if this <code>Any</code> object
487 * contains something other than a <code>java.io.Serializable</code>
488 * object or the
489 * <code>value</code> field has not yet been set
490 */
491 abstract public java.io.Serializable extract_Value() throws BAD_OPERATION ;
493 /**
494 * Inserts the given <code>java.io.Serializable</code> object
495 * into this <code>Any</code> object's <code>value</code> field.
496 *
497 * @param v the <code>java.io.Serializable</code> object to insert into this
498 * <code>Any</code> object
499 */
500 abstract public void insert_Value(java.io.Serializable v) ;
502 /**
503 * Inserts the given <code>java.io.Serializable</code> object
504 * into this <code>Any</code> object's <code>value</code> field.
505 *
506 * @param v the <code>java.io.Serializable</code> object to insert into this
507 * <code>Any</code> object
508 * @param t the <code>TypeCode</code> object that is to be inserted into
509 * this <code>Any</code> object's <code>type</code> field
510 * and that describes the <code>java.io.Serializable</code>
511 * object being inserted
512 * @throws MARSHAL if the ORB has a problem marshalling or
513 * unmarshalling parameters
514 */
515 abstract public void insert_Value(java.io.Serializable v, TypeCode t)
516 throws MARSHAL ;
517 /**
518 * Inserts the given <code>org.omg.CORBA.Object</code> object
519 * into this <code>Any</code> object's <code>value</code> field.
520 *
521 * @param o the <code>org.omg.CORBA.Object</code> instance to insert into this
522 * <code>Any</code> object
523 * @param t the <code>TypeCode</code> object that is to be inserted into
524 * this <code>Any</code> object and that describes
525 * the <code>Object</code> being inserted
526 * @exception BAD_OPERATION if this method is invalid for this
527 * <code>Any</code> object
528 *
529 */
530 abstract public void insert_Object(org.omg.CORBA.Object o, TypeCode t)
531 throws BAD_PARAM;
533 /**
534 * Extracts the <code>String</code> object in this
535 * <code>Any</code> object's <code>value</code> field.
536 *
537 * @return the <code>String</code> object stored in this <code>Any</code> object
538 * @exception BAD_OPERATION if this <code>Any</code> object
539 * contains something other than a <code>String</code> object or the
540 * <code>value</code> field has not yet been set
541 */
542 abstract public String extract_string() throws BAD_OPERATION;
544 /**
545 * Inserts the given <code>String</code> object
546 * into this <code>Any</code> object's <code>value</code> field.
547 *
548 * @param s the <code>String</code> object to insert into this
549 * <code>Any</code> object
550 * @exception DATA_CONVERSION if there is a data conversion error
551 * @exception MARSHAL if the ORB has a problem marshalling or
552 * unmarshalling parameters
553 */
554 abstract public void insert_string(String s) throws DATA_CONVERSION, MARSHAL;
556 /**
557 * Extracts the <code>String</code> object in this
558 * <code>Any</code> object's <code>value</code> field.
559 *
560 * @return the <code>String</code> object stored in this <code>Any</code> object
561 * @exception BAD_OPERATION if this <code>Any</code> object
562 * contains something other than a <code>String</code> object or the
563 * <code>value</code> field has not yet been set
564 */
565 abstract public String extract_wstring() throws BAD_OPERATION;
567 /**
568 * Inserts the given <code>String</code> object
569 * into this <code>Any</code> object's <code>value</code> field.
570 *
571 * @param s the <code>String</code> object to insert into this
572 * <code>Any</code> object
573 * @exception MARSHAL if the ORB has a problem marshalling or
574 * unmarshalling parameters
575 */
576 abstract public void insert_wstring(String s) throws MARSHAL;
578 /**
579 * Extracts the <code>TypeCode</code> object in this
580 * <code>Any</code> object's <code>value</code> field.
581 *
582 * @return the <code>TypeCode</code> object stored in this <code>Any</code> object
583 * @exception BAD_OPERATION if this <code>Any</code> object
584 * contains something other than a <code>TypeCode</code> object or the
585 * <code>value</code> field has not yet been set
586 */
587 abstract public TypeCode extract_TypeCode() throws BAD_OPERATION;
589 /**
590 * Inserts the given <code>TypeCode</code> object
591 * into this <code>Any</code> object's <code>value</code> field.
592 *
593 * @param t the <code>TypeCode</code> object to insert into this
594 * <code>Any</code> object
595 */
596 abstract public void insert_TypeCode(TypeCode t);
598 /**
599 * Extracts the <code>Principal</code> object in this
600 * <code>Any</code> object's <code>value</code> field.
601 * Note that the class <code>Principal</code> has been deprecated.
602 *
603 * @return the <code>Principal</code> object stored in this <code>Any</code> object
604 * @exception BAD_OPERATION if this <code>Any</code> object
605 * contains something other than a
606 * <code>Principal</code> object or the
607 * <code>value</code> field has not yet been set
608 * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
609 * comments for unimplemented features</a>
610 * @deprecated Deprecated by CORBA 2.2.
611 */
612 @Deprecated
613 public Principal extract_Principal() throws BAD_OPERATION {
614 throw new org.omg.CORBA.NO_IMPLEMENT() ;
615 }
617 /**
618 * Inserts the given <code>Principal</code> object
619 * into this <code>Any</code> object's <code>value</code> field.
620 * Note that the class <code>Principal</code> has been deprecated.
621 *
622 * @param p the <code>Principal</code> object to insert into this
623 * <code>Any</code> object
624 * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
625 * comments for unimplemented features</a>
626 * @deprecated Deprecated by CORBA 2.2.
627 */
628 @Deprecated
629 public void insert_Principal(Principal p) {
630 throw new org.omg.CORBA.NO_IMPLEMENT() ;
631 }
633 ///////////////////////////////////////////////////////////////////////////
634 // insertion/extraction of streamables
636 /**
637 * Extracts a <code>Streamable</code> from this <code>Any</code> object's
638 * <code>value</code> field. This method allows the extraction of
639 * non-primitive IDL types.
640 *
641 * @return the <code>Streamable</code> stored in the <code>Any</code> object.
642 * @throws BAD_INV_ORDER if the caller has invoked operations in the wrong order
643 * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
644 * comments for unimplemented features</a>
645 */
646 public org.omg.CORBA.portable.Streamable extract_Streamable()
647 throws org.omg.CORBA.BAD_INV_ORDER {
648 throw new org.omg.CORBA.NO_IMPLEMENT() ;
649 }
651 /**
652 * Inserts the given <code>Streamable</code> object
653 * into this <code>Any</code> object's <code>value</code> field.
654 * This method allows the insertion of non-primitive IDL types.
655 *
656 * @param s the <code>Streamable</code> object to insert into this
657 * <code>Any</code> object; may be a non-primitive
658 * IDL type
659 * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
660 * comments for unimplemented features</a>
661 */
662 public void insert_Streamable(Streamable s) {
663 throw new org.omg.CORBA.NO_IMPLEMENT() ;
664 }
666 /**
667 * Extracts the <code>java.math.BigDecimal</code> object in this
668 * <code>Any</code> object's <code>value</code> field.
669 *
670 * @return the <code>java.math.BigDecimal</code> object
671 * stored in this <code>Any</code> object
672 * @exception BAD_OPERATION if this <code>Any</code> object
673 * contains something other than a
674 * <code>java.math.BigDecimal</code> object or the
675 * <code>value</code> field has not yet been set
676 * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
677 * comments for unimplemented features</a>
678 */
679 public java.math.BigDecimal extract_fixed() {
680 throw new org.omg.CORBA.NO_IMPLEMENT();
681 }
683 /**
684 * Throws an <a href="package-summary.html#NO_IMPLEMENT">
685 * <code>org.omg.CORBA.NO_IMPLEMENT</code></a> exception.
686 * <P>
687 * Inserts the given <code>java.math.BigDecimal</code> object
688 * into this <code>Any</code> object's <code>value</code> field.
689 *
690 * @param value the <code>java.math.BigDecimal</code> object
691 * to insert into this <code>Any</code> object
692 * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
693 * comments for unimplemented features</a>
694 */
695 public void insert_fixed(java.math.BigDecimal value) {
696 throw new org.omg.CORBA.NO_IMPLEMENT();
697 }
699 /**
700 * Throws an <a href="package-summary.html#NO_IMPLEMENT">
701 * <code>org.omg.CORBA.NO_IMPLEMENT</code></a> exception.
702 * <P>
703 * Inserts the given <code>java.math.BigDecimal</code> object
704 * into this <code>Any</code> object's <code>value</code> field.
705 *
706 * @param value the <code>java.math.BigDecimal</code> object
707 * to insert into this <code>Any</code> object
708 * @param type the <code>TypeCode</code> object that is to be inserted into
709 * this <code>Any</code> object's <code>type</code> field
710 * and that describes the <code>java.math.BigDecimal</code>
711 * object being inserted
712 * @throws org.omg.CORBA.BAD_INV_ORDER if this method is invoked improperly
713 * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
714 * comments for unimplemented features</a>
715 */
716 public void insert_fixed(java.math.BigDecimal value, org.omg.CORBA.TypeCode type)
717 throws org.omg.CORBA.BAD_INV_ORDER
718 {
719 throw new org.omg.CORBA.NO_IMPLEMENT();
720 }
721 }