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