DynAnyConstructedImpl.java revision 608:7e06bf1dcb09
1/* 2 * Copyright (c) 2000, 2003, 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 */ 25 26package com.sun.corba.se.impl.dynamicany; 27 28import org.omg.CORBA.Any; 29import org.omg.CORBA.TypeCode; 30import org.omg.CORBA.portable.OutputStream; 31import org.omg.DynamicAny.*; 32import org.omg.DynamicAny.DynAnyPackage.TypeMismatch; 33import org.omg.DynamicAny.DynAnyPackage.InvalidValue; 34import org.omg.DynamicAny.DynAnyFactoryPackage.InconsistentTypeCode; 35import com.sun.corba.se.impl.corba.TypeCodeImpl; // needed for recursive type codes 36 37import com.sun.corba.se.spi.orb.ORB ; 38import com.sun.corba.se.spi.logging.CORBALogDomains ; 39import com.sun.corba.se.impl.logging.ORBUtilSystemException ; 40 41abstract class DynAnyConstructedImpl extends DynAnyImpl 42{ 43 protected static final byte REPRESENTATION_NONE = 0; 44 protected static final byte REPRESENTATION_TYPECODE = 1; 45 protected static final byte REPRESENTATION_ANY = 2; 46 protected static final byte REPRESENTATION_COMPONENTS = 4; 47 48 protected static final byte RECURSIVE_UNDEF = -1; 49 protected static final byte RECURSIVE_NO = 0; 50 protected static final byte RECURSIVE_YES = 1; 51 52 protected static final DynAny[] emptyComponents = new DynAny[0]; 53 // 54 // Instance variables 55 // 56 57 // Constructed DynAnys maintain an ordered collection of component DynAnys. 58 DynAny[] components = emptyComponents; 59 byte representations = REPRESENTATION_NONE; 60 byte isRecursive = RECURSIVE_UNDEF; 61 62 // 63 // Constructors 64 // 65 66 private DynAnyConstructedImpl() { 67 this(null, (Any)null, false); 68 } 69 70 protected DynAnyConstructedImpl(ORB orb, Any any, boolean copyValue) { 71 super(orb, any, copyValue); 72 //System.out.println(this + " constructed with any " + any); 73 if (this.any != null) { 74 representations = REPRESENTATION_ANY; 75 } 76 // set the current position to 0 if any has components, otherwise to -1. 77 index = 0; 78 } 79 80 protected DynAnyConstructedImpl(ORB orb, TypeCode typeCode) { 81 // assertion: typeCode has been checked to be valid for this particular subclass. 82 // note: We don't copy TypeCodes since they are considered immutable. 83 super(orb, typeCode); 84 if (typeCode != null) { 85 representations = REPRESENTATION_TYPECODE; 86 } 87 // set the current position to 0 if any has components, otherwise to -1. 88 index = NO_INDEX; 89 90 // _REVISIT_ Would need REPRESENTATION_TYPECODE for lazy initialization 91 //if ( ! isRecursive()) { 92 // initializeComponentsFromTypeCode(); 93 //} 94 } 95 96 protected boolean isRecursive() { 97 if (isRecursive == RECURSIVE_UNDEF) { 98 TypeCode typeCode = any.type(); 99 if (typeCode instanceof TypeCodeImpl) { 100 if (((TypeCodeImpl)typeCode).is_recursive()) 101 isRecursive = RECURSIVE_YES; 102 else 103 isRecursive = RECURSIVE_NO; 104 } else { 105 // No way to find out unless the TypeCode spec changes. 106 isRecursive = RECURSIVE_NO; 107 } 108 } 109 return (isRecursive == RECURSIVE_YES); 110 } 111 112 // 113 // DynAny traversal methods 114 // 115 116 public org.omg.DynamicAny.DynAny current_component() 117 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch 118 { 119 if (status == STATUS_DESTROYED) { 120 throw wrapper.dynAnyDestroyed() ; 121 } 122 if (index == NO_INDEX) { 123 return null; 124 } 125 return (checkInitComponents() ? components[index] : null); 126 } 127 128 public int component_count() { 129 if (status == STATUS_DESTROYED) { 130 throw wrapper.dynAnyDestroyed() ; 131 } 132 return (checkInitComponents() ? components.length : 0); 133 } 134 135 public boolean next() { 136 if (status == STATUS_DESTROYED) { 137 throw wrapper.dynAnyDestroyed() ; 138 } 139 if (checkInitComponents() == false) { 140 return false; 141 } 142 index++; 143 if (index >= 0 && index < components.length) { 144 return true; 145 } else { 146 index = NO_INDEX; 147 return false; 148 } 149 } 150 151 public boolean seek(int newIndex) { 152 if (status == STATUS_DESTROYED) { 153 throw wrapper.dynAnyDestroyed() ; 154 } 155 if (newIndex < 0) { 156 this.index = NO_INDEX; 157 return false; 158 } 159 if (checkInitComponents() == false) { 160 return false; 161 } 162 if (newIndex < components.length) { 163 index = newIndex; 164 return true; 165 } 166 return false; 167 } 168 169 public void rewind() { 170 if (status == STATUS_DESTROYED) { 171 throw wrapper.dynAnyDestroyed() ; 172 } 173 this.seek(0); 174 } 175 176 // 177 // Utility methods 178 // 179 180 protected void clearData() { 181 super.clearData(); 182 // _REVISIT_ What about status? 183 components = emptyComponents; 184 index = NO_INDEX; 185 representations = REPRESENTATION_NONE; 186 } 187 188 protected void writeAny(OutputStream out) { 189 // If all we got is TypeCode representation (no value) 190 // then we don't want to force creating a default value 191 //System.out.println(this + " checkInitAny before writeAny"); 192 checkInitAny(); 193 super.writeAny(out); 194 } 195 196 // Makes sure that the components representation is initialized 197 protected boolean checkInitComponents() { 198 if ((representations & REPRESENTATION_COMPONENTS) == 0) { 199 if ((representations & REPRESENTATION_ANY) != 0) { 200 if (initializeComponentsFromAny()) { 201 representations |= REPRESENTATION_COMPONENTS; 202 } else { 203 return false; 204 } 205 } else if ((representations & REPRESENTATION_TYPECODE) != 0) { 206 if (initializeComponentsFromTypeCode()) { 207 representations |= REPRESENTATION_COMPONENTS; 208 } else { 209 return false; 210 } 211 } 212 } 213 return true; 214 } 215 216 // Makes sure that the Any representation is initialized 217 protected void checkInitAny() { 218 if ((representations & REPRESENTATION_ANY) == 0) { 219 //System.out.println(this + " checkInitAny: reps does not have REPRESENTATION_ANY"); 220 if ((representations & REPRESENTATION_COMPONENTS) != 0) { 221 //System.out.println(this + " checkInitAny: reps has REPRESENTATION_COMPONENTS"); 222 if (initializeAnyFromComponents()) { 223 representations |= REPRESENTATION_ANY; 224 } 225 } else if ((representations & REPRESENTATION_TYPECODE) != 0) { 226 //System.out.println(this + " checkInitAny: reps has REPRESENTATION_TYPECODE"); 227 if (representations == REPRESENTATION_TYPECODE && isRecursive()) 228 return; 229 if (initializeComponentsFromTypeCode()) { 230 representations |= REPRESENTATION_COMPONENTS; 231 } 232 if (initializeAnyFromComponents()) { 233 representations |= REPRESENTATION_ANY; 234 } 235 } 236 } else { 237 //System.out.println(this + " checkInitAny: reps != REPRESENTATION_ANY"); 238 } 239 return; 240 } 241 242 protected abstract boolean initializeComponentsFromAny(); 243 protected abstract boolean initializeComponentsFromTypeCode(); 244 245 // Collapses the whole DynAny hierarchys values into one single streamed Any 246 protected boolean initializeAnyFromComponents() { 247 //System.out.println(this + " initializeAnyFromComponents"); 248 OutputStream out = any.create_output_stream(); 249 for (int i=0; i<components.length; i++) { 250 if (components[i] instanceof DynAnyImpl) { 251 ((DynAnyImpl)components[i]).writeAny(out); 252 } else { 253 // Not our implementation. Nothing we can do to prevent copying. 254 components[i].to_any().write_value(out); 255 } 256 } 257 any.read_value(out.create_input_stream(), any.type()); 258 return true; 259 } 260 261 // 262 // DynAny interface methods 263 // 264 265 public void assign (org.omg.DynamicAny.DynAny dyn_any) 266 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch 267 { 268 if (status == STATUS_DESTROYED) { 269 throw wrapper.dynAnyDestroyed() ; 270 } 271 clearData(); 272 super.assign(dyn_any); 273 representations = REPRESENTATION_ANY; 274 index = 0; 275 } 276 277 public void from_any (org.omg.CORBA.Any value) 278 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 279 org.omg.DynamicAny.DynAnyPackage.InvalidValue 280 { 281 if (status == STATUS_DESTROYED) { 282 throw wrapper.dynAnyDestroyed() ; 283 } 284 clearData(); 285 super.from_any(value); 286 representations = REPRESENTATION_ANY; 287 index = 0; 288 } 289 290 // Spec: Returns a copy of the internal Any 291 public org.omg.CORBA.Any to_any() { 292 //System.out.println(this + " to_any "); 293 if (status == STATUS_DESTROYED) { 294 throw wrapper.dynAnyDestroyed() ; 295 } 296 checkInitAny(); 297 // Anys value may still be uninitialized if DynAny was initialized by TypeCode only 298 return DynAnyUtil.copy(any, orb); 299 } 300 301 public boolean equal (org.omg.DynamicAny.DynAny dyn_any) { 302 if (status == STATUS_DESTROYED) { 303 throw wrapper.dynAnyDestroyed() ; 304 } 305 if (dyn_any == this) { 306 return true; 307 } 308 if ( ! any.type().equal(dyn_any.type())) { 309 return false; 310 } 311 // This changes the current position of dyn_any. 312 // Make sure that our position isn't changed. 313 if (checkInitComponents() == false) { 314 return false; 315 } 316 DynAny currentComponent = null; 317 try { 318 // Remember the current position to restore it later 319 currentComponent = dyn_any.current_component(); 320 for (int i=0; i<components.length; i++) { 321 if (dyn_any.seek(i) == false) 322 return false; 323 //System.out.println(this + " comparing component " + i + "=" + components[i] + 324 // " of type " + components[i].type().kind().value()); 325 if ( ! components[i].equal(dyn_any.current_component())) { 326 //System.out.println("Not equal component " + i); 327 return false; 328 } 329 } 330 } catch (TypeMismatch tm) { 331 // impossible, we checked the type codes already 332 } finally { 333 // Restore the current position of the other DynAny 334 DynAnyUtil.set_current_component(dyn_any, currentComponent); 335 } 336 return true; 337 } 338 339 public void destroy() { 340 if (status == STATUS_DESTROYED) { 341 throw wrapper.dynAnyDestroyed() ; 342 } 343 if (status == STATUS_DESTROYABLE) { 344 status = STATUS_DESTROYED; 345 for (int i=0; i<components.length; i++) { 346 if (components[i] instanceof DynAnyImpl) { 347 ((DynAnyImpl)components[i]).setStatus(STATUS_DESTROYABLE); 348 } 349 components[i].destroy(); 350 } 351 } 352 } 353 354 public org.omg.DynamicAny.DynAny copy() { 355 if (status == STATUS_DESTROYED) { 356 throw wrapper.dynAnyDestroyed() ; 357 } 358 checkInitAny(); 359 try { 360 return DynAnyUtil.createMostDerivedDynAny(any, orb, true); 361 } catch (InconsistentTypeCode ictc) { 362 return null; // impossible 363 } 364 } 365 366 // getter / setter methods 367 368 public void insert_boolean(boolean value) 369 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 370 org.omg.DynamicAny.DynAnyPackage.InvalidValue 371 { 372 if (status == STATUS_DESTROYED) { 373 throw wrapper.dynAnyDestroyed() ; 374 } 375 if (index == NO_INDEX) 376 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 377 DynAny currentComponent = current_component(); 378 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 379 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 380 currentComponent.insert_boolean(value); 381 } 382 383 public void insert_octet(byte value) 384 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 385 org.omg.DynamicAny.DynAnyPackage.InvalidValue 386 { 387 if (status == STATUS_DESTROYED) { 388 throw wrapper.dynAnyDestroyed() ; 389 } 390 if (index == NO_INDEX) 391 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 392 DynAny currentComponent = current_component(); 393 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 394 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 395 currentComponent.insert_octet(value); 396 } 397 398 public void insert_char(char value) 399 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 400 org.omg.DynamicAny.DynAnyPackage.InvalidValue 401 { 402 if (status == STATUS_DESTROYED) { 403 throw wrapper.dynAnyDestroyed() ; 404 } 405 if (index == NO_INDEX) 406 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 407 DynAny currentComponent = current_component(); 408 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 409 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 410 currentComponent.insert_char(value); 411 } 412 413 public void insert_short(short value) 414 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 415 org.omg.DynamicAny.DynAnyPackage.InvalidValue 416 { 417 if (status == STATUS_DESTROYED) { 418 throw wrapper.dynAnyDestroyed() ; 419 } 420 if (index == NO_INDEX) 421 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 422 DynAny currentComponent = current_component(); 423 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 424 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 425 currentComponent.insert_short(value); 426 } 427 428 public void insert_ushort(short value) 429 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 430 org.omg.DynamicAny.DynAnyPackage.InvalidValue 431 { 432 if (status == STATUS_DESTROYED) { 433 throw wrapper.dynAnyDestroyed() ; 434 } 435 if (index == NO_INDEX) 436 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 437 DynAny currentComponent = current_component(); 438 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 439 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 440 currentComponent.insert_ushort(value); 441 } 442 443 public void insert_long(int value) 444 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 445 org.omg.DynamicAny.DynAnyPackage.InvalidValue 446 { 447 if (status == STATUS_DESTROYED) { 448 throw wrapper.dynAnyDestroyed() ; 449 } 450 if (index == NO_INDEX) 451 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 452 DynAny currentComponent = current_component(); 453 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 454 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 455 currentComponent.insert_long(value); 456 } 457 458 public void insert_ulong(int value) 459 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 460 org.omg.DynamicAny.DynAnyPackage.InvalidValue 461 { 462 if (status == STATUS_DESTROYED) { 463 throw wrapper.dynAnyDestroyed() ; 464 } 465 if (index == NO_INDEX) 466 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 467 DynAny currentComponent = current_component(); 468 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 469 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 470 currentComponent.insert_ulong(value); 471 } 472 473 public void insert_float(float value) 474 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 475 org.omg.DynamicAny.DynAnyPackage.InvalidValue 476 { 477 if (status == STATUS_DESTROYED) { 478 throw wrapper.dynAnyDestroyed() ; 479 } 480 if (index == NO_INDEX) 481 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 482 DynAny currentComponent = current_component(); 483 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 484 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 485 currentComponent.insert_float(value); 486 } 487 488 public void insert_double(double value) 489 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 490 org.omg.DynamicAny.DynAnyPackage.InvalidValue 491 { 492 if (status == STATUS_DESTROYED) { 493 throw wrapper.dynAnyDestroyed() ; 494 } 495 if (index == NO_INDEX) 496 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 497 DynAny currentComponent = current_component(); 498 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 499 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 500 currentComponent.insert_double(value); 501 } 502 503 public void insert_string(String value) 504 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 505 org.omg.DynamicAny.DynAnyPackage.InvalidValue 506 { 507 if (status == STATUS_DESTROYED) { 508 throw wrapper.dynAnyDestroyed() ; 509 } 510 if (index == NO_INDEX) 511 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 512 DynAny currentComponent = current_component(); 513 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 514 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 515 currentComponent.insert_string(value); 516 } 517 518 public void insert_reference(org.omg.CORBA.Object value) 519 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 520 org.omg.DynamicAny.DynAnyPackage.InvalidValue 521 { 522 if (status == STATUS_DESTROYED) { 523 throw wrapper.dynAnyDestroyed() ; 524 } 525 if (index == NO_INDEX) 526 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 527 DynAny currentComponent = current_component(); 528 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 529 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 530 currentComponent.insert_reference(value); 531 } 532 533 public void insert_typecode(org.omg.CORBA.TypeCode value) 534 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 535 org.omg.DynamicAny.DynAnyPackage.InvalidValue 536 { 537 if (status == STATUS_DESTROYED) { 538 throw wrapper.dynAnyDestroyed() ; 539 } 540 if (index == NO_INDEX) 541 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 542 DynAny currentComponent = current_component(); 543 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 544 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 545 currentComponent.insert_typecode(value); 546 } 547 548 public void insert_longlong(long value) 549 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 550 org.omg.DynamicAny.DynAnyPackage.InvalidValue 551 { 552 if (status == STATUS_DESTROYED) { 553 throw wrapper.dynAnyDestroyed() ; 554 } 555 if (index == NO_INDEX) 556 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 557 DynAny currentComponent = current_component(); 558 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 559 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 560 currentComponent.insert_longlong(value); 561 } 562 563 public void insert_ulonglong(long value) 564 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 565 org.omg.DynamicAny.DynAnyPackage.InvalidValue 566 { 567 if (status == STATUS_DESTROYED) { 568 throw wrapper.dynAnyDestroyed() ; 569 } 570 if (index == NO_INDEX) 571 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 572 DynAny currentComponent = current_component(); 573 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 574 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 575 currentComponent.insert_ulonglong(value); 576 } 577 578 public void insert_wchar(char value) 579 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 580 org.omg.DynamicAny.DynAnyPackage.InvalidValue 581 { 582 if (status == STATUS_DESTROYED) { 583 throw wrapper.dynAnyDestroyed() ; 584 } 585 if (index == NO_INDEX) 586 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 587 DynAny currentComponent = current_component(); 588 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 589 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 590 currentComponent.insert_wchar(value); 591 } 592 593 public void insert_wstring(String value) 594 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 595 org.omg.DynamicAny.DynAnyPackage.InvalidValue 596 { 597 if (status == STATUS_DESTROYED) { 598 throw wrapper.dynAnyDestroyed() ; 599 } 600 if (index == NO_INDEX) 601 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 602 DynAny currentComponent = current_component(); 603 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 604 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 605 currentComponent.insert_wstring(value); 606 } 607 608 public void insert_any(org.omg.CORBA.Any value) 609 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 610 org.omg.DynamicAny.DynAnyPackage.InvalidValue 611 { 612 if (status == STATUS_DESTROYED) { 613 throw wrapper.dynAnyDestroyed() ; 614 } 615 if (index == NO_INDEX) 616 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 617 DynAny currentComponent = current_component(); 618 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 619 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 620 currentComponent.insert_any(value); 621 } 622 623 public void insert_dyn_any (org.omg.DynamicAny.DynAny value) 624 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 625 org.omg.DynamicAny.DynAnyPackage.InvalidValue 626 { 627 if (status == STATUS_DESTROYED) { 628 throw wrapper.dynAnyDestroyed() ; 629 } 630 if (index == NO_INDEX) 631 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 632 DynAny currentComponent = current_component(); 633 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 634 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 635 currentComponent.insert_dyn_any(value); 636 } 637 638 public void insert_val(java.io.Serializable value) 639 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 640 org.omg.DynamicAny.DynAnyPackage.InvalidValue 641 { 642 if (status == STATUS_DESTROYED) { 643 throw wrapper.dynAnyDestroyed() ; 644 } 645 if (index == NO_INDEX) 646 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 647 DynAny currentComponent = current_component(); 648 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 649 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 650 currentComponent.insert_val(value); 651 } 652 653 public java.io.Serializable get_val() 654 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 655 org.omg.DynamicAny.DynAnyPackage.InvalidValue 656 { 657 if (status == STATUS_DESTROYED) { 658 throw wrapper.dynAnyDestroyed() ; 659 } 660 if (index == NO_INDEX) 661 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 662 DynAny currentComponent = current_component(); 663 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 664 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 665 return currentComponent.get_val(); 666 } 667 668 public boolean get_boolean() 669 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 670 org.omg.DynamicAny.DynAnyPackage.InvalidValue 671 { 672 if (status == STATUS_DESTROYED) { 673 throw wrapper.dynAnyDestroyed() ; 674 } 675 if (index == NO_INDEX) 676 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 677 DynAny currentComponent = current_component(); 678 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 679 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 680 return currentComponent.get_boolean(); 681 } 682 683 public byte get_octet() 684 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 685 org.omg.DynamicAny.DynAnyPackage.InvalidValue 686 { 687 if (status == STATUS_DESTROYED) { 688 throw wrapper.dynAnyDestroyed() ; 689 } 690 if (index == NO_INDEX) 691 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 692 DynAny currentComponent = current_component(); 693 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 694 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 695 return currentComponent.get_octet(); 696 } 697 698 public char get_char() 699 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 700 org.omg.DynamicAny.DynAnyPackage.InvalidValue 701 { 702 if (status == STATUS_DESTROYED) { 703 throw wrapper.dynAnyDestroyed() ; 704 } 705 if (index == NO_INDEX) 706 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 707 DynAny currentComponent = current_component(); 708 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 709 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 710 return currentComponent.get_char(); 711 } 712 713 public short get_short() 714 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 715 org.omg.DynamicAny.DynAnyPackage.InvalidValue 716 { 717 if (status == STATUS_DESTROYED) { 718 throw wrapper.dynAnyDestroyed() ; 719 } 720 if (index == NO_INDEX) 721 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 722 DynAny currentComponent = current_component(); 723 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 724 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 725 return currentComponent.get_short(); 726 } 727 728 public short get_ushort() 729 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 730 org.omg.DynamicAny.DynAnyPackage.InvalidValue 731 { 732 if (status == STATUS_DESTROYED) { 733 throw wrapper.dynAnyDestroyed() ; 734 } 735 if (index == NO_INDEX) 736 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 737 DynAny currentComponent = current_component(); 738 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 739 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 740 return currentComponent.get_ushort(); 741 } 742 743 public int get_long() 744 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 745 org.omg.DynamicAny.DynAnyPackage.InvalidValue 746 { 747 if (status == STATUS_DESTROYED) { 748 throw wrapper.dynAnyDestroyed() ; 749 } 750 if (index == NO_INDEX) 751 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 752 DynAny currentComponent = current_component(); 753 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 754 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 755 return currentComponent.get_long(); 756 } 757 758 public int get_ulong() 759 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 760 org.omg.DynamicAny.DynAnyPackage.InvalidValue 761 { 762 if (status == STATUS_DESTROYED) { 763 throw wrapper.dynAnyDestroyed() ; 764 } 765 if (index == NO_INDEX) 766 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 767 DynAny currentComponent = current_component(); 768 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 769 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 770 return currentComponent.get_ulong(); 771 } 772 773 public float get_float() 774 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 775 org.omg.DynamicAny.DynAnyPackage.InvalidValue 776 { 777 if (status == STATUS_DESTROYED) { 778 throw wrapper.dynAnyDestroyed() ; 779 } 780 if (index == NO_INDEX) 781 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 782 DynAny currentComponent = current_component(); 783 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 784 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 785 return currentComponent.get_float(); 786 } 787 788 public double get_double() 789 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 790 org.omg.DynamicAny.DynAnyPackage.InvalidValue 791 { 792 if (status == STATUS_DESTROYED) { 793 throw wrapper.dynAnyDestroyed() ; 794 } 795 if (index == NO_INDEX) 796 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 797 DynAny currentComponent = current_component(); 798 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 799 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 800 return currentComponent.get_double(); 801 } 802 803 public String get_string() 804 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 805 org.omg.DynamicAny.DynAnyPackage.InvalidValue 806 { 807 if (status == STATUS_DESTROYED) { 808 throw wrapper.dynAnyDestroyed() ; 809 } 810 if (index == NO_INDEX) 811 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 812 DynAny currentComponent = current_component(); 813 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 814 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 815 return currentComponent.get_string(); 816 } 817 818 public org.omg.CORBA.Object get_reference() 819 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 820 org.omg.DynamicAny.DynAnyPackage.InvalidValue 821 { 822 if (status == STATUS_DESTROYED) { 823 throw wrapper.dynAnyDestroyed() ; 824 } 825 if (index == NO_INDEX) 826 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 827 DynAny currentComponent = current_component(); 828 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 829 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 830 return currentComponent.get_reference(); 831 } 832 833 public org.omg.CORBA.TypeCode get_typecode() 834 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 835 org.omg.DynamicAny.DynAnyPackage.InvalidValue 836 { 837 if (status == STATUS_DESTROYED) { 838 throw wrapper.dynAnyDestroyed() ; 839 } 840 if (index == NO_INDEX) 841 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 842 DynAny currentComponent = current_component(); 843 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 844 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 845 return currentComponent.get_typecode(); 846 } 847 848 public long get_longlong() 849 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 850 org.omg.DynamicAny.DynAnyPackage.InvalidValue 851 { 852 if (status == STATUS_DESTROYED) { 853 throw wrapper.dynAnyDestroyed() ; 854 } 855 if (index == NO_INDEX) 856 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 857 DynAny currentComponent = current_component(); 858 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 859 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 860 return currentComponent.get_longlong(); 861 } 862 863 public long get_ulonglong() 864 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 865 org.omg.DynamicAny.DynAnyPackage.InvalidValue 866 { 867 if (status == STATUS_DESTROYED) { 868 throw wrapper.dynAnyDestroyed() ; 869 } 870 if (index == NO_INDEX) 871 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 872 DynAny currentComponent = current_component(); 873 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 874 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 875 return currentComponent.get_ulonglong(); 876 } 877 878 public char get_wchar() 879 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 880 org.omg.DynamicAny.DynAnyPackage.InvalidValue 881 { 882 if (status == STATUS_DESTROYED) { 883 throw wrapper.dynAnyDestroyed() ; 884 } 885 if (index == NO_INDEX) 886 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 887 DynAny currentComponent = current_component(); 888 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 889 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 890 return currentComponent.get_wchar(); 891 } 892 893 public String get_wstring() 894 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 895 org.omg.DynamicAny.DynAnyPackage.InvalidValue 896 { 897 if (status == STATUS_DESTROYED) { 898 throw wrapper.dynAnyDestroyed() ; 899 } 900 if (index == NO_INDEX) 901 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 902 DynAny currentComponent = current_component(); 903 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 904 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 905 return currentComponent.get_wstring(); 906 } 907 908 public org.omg.CORBA.Any get_any() 909 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 910 org.omg.DynamicAny.DynAnyPackage.InvalidValue 911 { 912 if (status == STATUS_DESTROYED) { 913 throw wrapper.dynAnyDestroyed() ; 914 } 915 if (index == NO_INDEX) 916 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 917 DynAny currentComponent = current_component(); 918 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 919 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 920 return currentComponent.get_any(); 921 } 922 923 public org.omg.DynamicAny.DynAny get_dyn_any() 924 throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, 925 org.omg.DynamicAny.DynAnyPackage.InvalidValue 926 { 927 if (status == STATUS_DESTROYED) { 928 throw wrapper.dynAnyDestroyed() ; 929 } 930 if (index == NO_INDEX) 931 throw new org.omg.DynamicAny.DynAnyPackage.InvalidValue(); 932 DynAny currentComponent = current_component(); 933 if (DynAnyUtil.isConstructedDynAny(currentComponent)) 934 throw new org.omg.DynamicAny.DynAnyPackage.TypeMismatch(); 935 return currentComponent.get_dyn_any(); 936 } 937} 938