1. /*
  2. * @(#)TargetAddressHelper.java 1.6 03/01/23
  3. *
  4. * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package com.sun.corba.se.internal.iiop.messages;
  8. /**
  9. * com/sun/corba/se/internal/iiop/messages/TargetAddressHelper.java
  10. * Generated by the IDL-to-Java compiler (portable), version "3.0"
  11. * from ../../../../../../../src/share/classes/com/sun/corba/se/GiopIDL/g.idl
  12. * Sunday, June 4, 2000 5:18:54 PM PDT
  13. */
  14. abstract public class TargetAddressHelper
  15. {
  16. private static String _id = "IDL:messages/TargetAddress:1.0";
  17. public static void insert (org.omg.CORBA.Any a, com.sun.corba.se.internal.iiop.messages.TargetAddress that)
  18. {
  19. org.omg.CORBA.portable.OutputStream out = a.create_output_stream ();
  20. a.type (type ());
  21. write (out, that);
  22. a.read_value (out.create_input_stream (), type ());
  23. }
  24. public static com.sun.corba.se.internal.iiop.messages.TargetAddress extract (org.omg.CORBA.Any a)
  25. {
  26. return read (a.create_input_stream ());
  27. }
  28. private static org.omg.CORBA.TypeCode __typeCode = null;
  29. synchronized public static org.omg.CORBA.TypeCode type ()
  30. {
  31. if (__typeCode == null)
  32. {
  33. org.omg.CORBA.TypeCode _disTypeCode0;
  34. _disTypeCode0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_short);
  35. _disTypeCode0 = org.omg.CORBA.ORB.init ().create_alias_tc (com.sun.corba.se.internal.iiop.messages.AddressingDispositionHelper.id (), "AddressingDisposition", _disTypeCode0);
  36. org.omg.CORBA.UnionMember[] _members0 = new org.omg.CORBA.UnionMember [3];
  37. org.omg.CORBA.TypeCode _tcOf_members0;
  38. org.omg.CORBA.Any _anyOf_members0;
  39. // Branch for object_key
  40. _anyOf_members0 = org.omg.CORBA.ORB.init ().create_any ();
  41. _anyOf_members0.insert_short ((short)com.sun.corba.se.internal.iiop.messages.KeyAddr.value);
  42. _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_octet);
  43. _tcOf_members0 = org.omg.CORBA.ORB.init ().create_sequence_tc (0, _tcOf_members0);
  44. _members0[0] = new org.omg.CORBA.UnionMember (
  45. "object_key",
  46. _anyOf_members0,
  47. _tcOf_members0,
  48. null);
  49. // Branch for profile
  50. _anyOf_members0 = org.omg.CORBA.ORB.init ().create_any ();
  51. _anyOf_members0.insert_short ((short)com.sun.corba.se.internal.iiop.messages.ProfileAddr.value);
  52. _tcOf_members0 = org.omg.IOP.TaggedProfileHelper.type ();
  53. _members0[1] = new org.omg.CORBA.UnionMember (
  54. "profile",
  55. _anyOf_members0,
  56. _tcOf_members0,
  57. null);
  58. // Branch for ior
  59. _anyOf_members0 = org.omg.CORBA.ORB.init ().create_any ();
  60. _anyOf_members0.insert_short ((short)com.sun.corba.se.internal.iiop.messages.ReferenceAddr.value);
  61. _tcOf_members0 = com.sun.corba.se.internal.iiop.messages.IORAddressingInfoHelper.type ();
  62. _members0[2] = new org.omg.CORBA.UnionMember (
  63. "ior",
  64. _anyOf_members0,
  65. _tcOf_members0,
  66. null);
  67. __typeCode = org.omg.CORBA.ORB.init ().create_union_tc (com.sun.corba.se.internal.iiop.messages.TargetAddressHelper.id (), "TargetAddress", _disTypeCode0, _members0);
  68. }
  69. return __typeCode;
  70. }
  71. public static String id ()
  72. {
  73. return _id;
  74. }
  75. public static com.sun.corba.se.internal.iiop.messages.TargetAddress read (org.omg.CORBA.portable.InputStream istream)
  76. {
  77. com.sun.corba.se.internal.iiop.messages.TargetAddress value = new com.sun.corba.se.internal.iiop.messages.TargetAddress ();
  78. short _dis0 = (short)0;
  79. _dis0 = istream.read_short ();
  80. switch (_dis0)
  81. {
  82. case com.sun.corba.se.internal.iiop.messages.KeyAddr.value:
  83. byte _object_key[] = null;
  84. int _len1 = istream.read_long ();
  85. _object_key = new byte[_len1];
  86. istream.read_octet_array (_object_key, 0, _len1);
  87. value.object_key (_object_key);
  88. break;
  89. case com.sun.corba.se.internal.iiop.messages.ProfileAddr.value:
  90. org.omg.IOP.TaggedProfile _profile = null;
  91. _profile = org.omg.IOP.TaggedProfileHelper.read (istream);
  92. value.profile (_profile);
  93. break;
  94. case com.sun.corba.se.internal.iiop.messages.ReferenceAddr.value:
  95. com.sun.corba.se.internal.iiop.messages.IORAddressingInfo _ior = null;
  96. _ior = com.sun.corba.se.internal.iiop.messages.IORAddressingInfoHelper.read (istream);
  97. value.ior (_ior);
  98. break;
  99. default:
  100. throw new org.omg.CORBA.BAD_OPERATION ();
  101. }
  102. return value;
  103. }
  104. public static void write (org.omg.CORBA.portable.OutputStream ostream, com.sun.corba.se.internal.iiop.messages.TargetAddress value)
  105. {
  106. ostream.write_short (value.discriminator ());
  107. switch (value.discriminator ())
  108. {
  109. case com.sun.corba.se.internal.iiop.messages.KeyAddr.value:
  110. ostream.write_long (value.object_key ().length);
  111. ostream.write_octet_array (value.object_key (), 0, value.object_key ().length);
  112. break;
  113. case com.sun.corba.se.internal.iiop.messages.ProfileAddr.value:
  114. org.omg.IOP.TaggedProfileHelper.write (ostream, value.profile ());
  115. break;
  116. case com.sun.corba.se.internal.iiop.messages.ReferenceAddr.value:
  117. com.sun.corba.se.internal.iiop.messages.IORAddressingInfoHelper.write (ostream, value.ior ());
  118. break;
  119. default:
  120. throw new org.omg.CORBA.BAD_OPERATION ();
  121. }
  122. }
  123. }