001 package org.omg.GIOP;
002
003 /**
004 * Generated from IDL union "TargetAddress".
005 *
006 * @author JacORB IDL compiler V 2.3.0 (JBoss patch 6), 06-Jun-2007
007 * @version generated at Sep 6, 2011 5:12:29 AM
008 */
009
010 public final class TargetAddressHelper
011 {
012 private static org.omg.CORBA.TypeCode _type;
013 public static void insert (final org.omg.CORBA.Any any, final org.omg.GIOP.TargetAddress s)
014 {
015 any.type(type());
016 write( any.create_output_stream(),s);
017 }
018
019 public static org.omg.GIOP.TargetAddress extract (final org.omg.CORBA.Any any)
020 {
021 return read(any.create_input_stream());
022 }
023
024 public static String id()
025 {
026 return "IDL:omg.org/GIOP/TargetAddress:1.0";
027 }
028 public static TargetAddress read (org.omg.CORBA.portable.InputStream in)
029 {
030 TargetAddress result = new TargetAddress ();
031 short disc=in.read_short();
032 switch (disc)
033 {
034 case 0:
035 {
036 byte[] _var;
037 int _l_var3 = in.read_long();
038 try
039 {
040 int x = in.available();
041 if ( x > 0 && _l_var3 > x )
042 {
043 throw new org.omg.CORBA.MARSHAL("Sequence length too large. Only " + x + " available and trying to assign " + _l_var3);
044 }
045 }
046 catch (java.io.IOException e)
047 {
048 }
049 _var = new byte[_l_var3];
050 in.read_octet_array(_var,0,_l_var3);
051 result.object_key (_var);
052 break;
053 }
054 case 1:
055 {
056 org.omg.IOP.TaggedProfile _var;
057 _var=org.omg.IOP.TaggedProfileHelper.read(in);
058 result.profile (_var);
059 break;
060 }
061 case 2:
062 {
063 org.omg.GIOP.IORAddressingInfo _var;
064 _var=org.omg.GIOP.IORAddressingInfoHelper.read(in);
065 result.ior (_var);
066 break;
067 }
068 default: result.__default (disc);
069 }
070 return result;
071 }
072 public static void write (org.omg.CORBA.portable.OutputStream out, TargetAddress s)
073 {
074 out.write_short(s.discriminator ());
075 switch (s.discriminator ())
076 {
077 case 0:
078 {
079
080 out.write_long(s.object_key ().length);
081 out.write_octet_array(s.object_key (),0,s.object_key ().length);
082 break;
083 }
084 case 1:
085 {
086 org.omg.IOP.TaggedProfileHelper.write(out,s.profile ());
087 break;
088 }
089 case 2:
090 {
091 org.omg.GIOP.IORAddressingInfoHelper.write(out,s.ior ());
092 break;
093 }
094 }
095 }
096 public static org.omg.CORBA.TypeCode type ()
097 {
098 if (_type == null)
099 {
100 org.omg.CORBA.UnionMember[] members = new org.omg.CORBA.UnionMember[3];
101 org.omg.CORBA.Any label_any;
102 label_any = org.omg.CORBA.ORB.init().create_any ();
103 label_any.insert_short ((short)0);
104 members[0] = new org.omg.CORBA.UnionMember ("object_key", label_any, org.omg.CORBA.ORB.init().create_sequence_tc(0, org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.from_int(10))),null);
105 label_any = org.omg.CORBA.ORB.init().create_any ();
106 label_any.insert_short ((short)1);
107 members[1] = new org.omg.CORBA.UnionMember ("profile", label_any, org.omg.IOP.TaggedProfileHelper.type(),null);
108 label_any = org.omg.CORBA.ORB.init().create_any ();
109 label_any.insert_short ((short)2);
110 members[2] = new org.omg.CORBA.UnionMember ("ior", label_any, org.omg.GIOP.IORAddressingInfoHelper.type(),null);
111 _type = org.omg.CORBA.ORB.init().create_union_tc(id(),"TargetAddress",org.omg.GIOP.AddressingDispositionHelper.type(), members);
112 }
113 return _type;
114 }
115 }