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 Jun 18, 2012 10:36:59 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    }