001    package org.omg.GIOP;
002    
003    
004    /**
005    * org/omg/GIOP/TargetAddressHelper.java .
006    * Generated by the IDL-to-Java compiler (portable), version "3.2"
007    * from /builddir/build/BUILD/geronimo-specs-1.6/geronimo-spec-corba/src/main/idl/GIOP.idl
008    * Monday, June 18, 2012 10:36:15 AM CEST
009    */
010    
011    abstract public class TargetAddressHelper
012    {
013      private static String  _id = "IDL:omg.org/GIOP/TargetAddress:1.0";
014    
015      public static void insert (org.omg.CORBA.Any a, org.omg.GIOP.TargetAddress that)
016      {
017        org.omg.CORBA.portable.OutputStream out = a.create_output_stream ();
018        a.type (type ());
019        write (out, that);
020        a.read_value (out.create_input_stream (), type ());
021      }
022    
023      public static org.omg.GIOP.TargetAddress extract (org.omg.CORBA.Any a)
024      {
025        return read (a.create_input_stream ());
026      }
027    
028      private static org.omg.CORBA.TypeCode __typeCode = null;
029      synchronized public static org.omg.CORBA.TypeCode type ()
030      {
031        if (__typeCode == null)
032        {
033          org.omg.CORBA.TypeCode _disTypeCode0;
034          _disTypeCode0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_short);
035          _disTypeCode0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.GIOP.AddressingDispositionHelper.id (), "AddressingDisposition", _disTypeCode0);
036          org.omg.CORBA.UnionMember[] _members0 = new org.omg.CORBA.UnionMember [3];
037          org.omg.CORBA.TypeCode _tcOf_members0;
038          org.omg.CORBA.Any _anyOf_members0;
039    
040          // Branch for object_key (case label org.omg.GIOP.KeyAddr.value)
041          _anyOf_members0 = org.omg.CORBA.ORB.init ().create_any ();
042          _anyOf_members0.insert_short ((short)org.omg.GIOP.KeyAddr.value);
043          _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_octet);
044          _tcOf_members0 = org.omg.CORBA.ORB.init ().create_sequence_tc (0, _tcOf_members0);
045          _members0[0] = new org.omg.CORBA.UnionMember (
046            "object_key",
047            _anyOf_members0,
048            _tcOf_members0,
049            null);
050    
051          // Branch for profile (case label org.omg.GIOP.ProfileAddr.value)
052          _anyOf_members0 = org.omg.CORBA.ORB.init ().create_any ();
053          _anyOf_members0.insert_short ((short)org.omg.GIOP.ProfileAddr.value);
054          _tcOf_members0 = org.omg.IOP.TaggedProfileHelper.type ();
055          _members0[1] = new org.omg.CORBA.UnionMember (
056            "profile",
057            _anyOf_members0,
058            _tcOf_members0,
059            null);
060    
061          // Branch for ior (case label org.omg.GIOP.ReferenceAddr.value)
062          _anyOf_members0 = org.omg.CORBA.ORB.init ().create_any ();
063          _anyOf_members0.insert_short ((short)org.omg.GIOP.ReferenceAddr.value);
064          _tcOf_members0 = org.omg.GIOP.IORAddressingInfoHelper.type ();
065          _members0[2] = new org.omg.CORBA.UnionMember (
066            "ior",
067            _anyOf_members0,
068            _tcOf_members0,
069            null);
070          __typeCode = org.omg.CORBA.ORB.init ().create_union_tc (org.omg.GIOP.TargetAddressHelper.id (), "TargetAddress", _disTypeCode0, _members0);
071        }
072        return __typeCode;
073      }
074    
075      public static String id ()
076      {
077        return _id;
078      }
079    
080      public static org.omg.GIOP.TargetAddress read (org.omg.CORBA.portable.InputStream istream)
081      {
082        org.omg.GIOP.TargetAddress value = new org.omg.GIOP.TargetAddress ();
083        short _dis0 = (short)0;
084        _dis0 = istream.read_short ();
085        switch (_dis0)
086        {
087          case org.omg.GIOP.KeyAddr.value:
088            byte _object_key[] = null;
089            int _len1 = istream.read_long ();
090            _object_key = new byte[_len1];
091            istream.read_octet_array (_object_key, 0, _len1);
092            value.object_key (_object_key);
093            break;
094          case org.omg.GIOP.ProfileAddr.value:
095            org.omg.IOP.TaggedProfile _profile = null;
096            _profile = org.omg.IOP.TaggedProfileHelper.read (istream);
097            value.profile (_profile);
098            break;
099          case org.omg.GIOP.ReferenceAddr.value:
100            org.omg.GIOP.IORAddressingInfo _ior = null;
101            _ior = org.omg.GIOP.IORAddressingInfoHelper.read (istream);
102            value.ior (_ior);
103            break;
104          default:
105            value._default( _dis0 ) ;
106            break;
107        }
108        return value;
109      }
110    
111      public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.GIOP.TargetAddress value)
112      {
113        ostream.write_short (value.discriminator ());
114        switch (value.discriminator ())
115        {
116          case org.omg.GIOP.KeyAddr.value:
117            ostream.write_long (value.object_key ().length);
118            ostream.write_octet_array (value.object_key (), 0, value.object_key ().length);
119            break;
120          case org.omg.GIOP.ProfileAddr.value:
121            org.omg.IOP.TaggedProfileHelper.write (ostream, value.profile ());
122            break;
123          case org.omg.GIOP.ReferenceAddr.value:
124            org.omg.GIOP.IORAddressingInfoHelper.write (ostream, value.ior ());
125            break;
126        }
127      }
128    
129    }