TargetAddressHelper.java revision 608:7e06bf1dcb09
1/*
2 * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.  Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26package com.sun.corba.se.impl.protocol.giopmsgheaders;
27
28
29/**
30* com/sun/corba/se/impl/protocol/giopmsgheaders/TargetAddressHelper.java
31* Generated by the IDL-to-Java compiler (portable), version "3.0"
32* from ../../../../../../../src/share/classes/com/sun/corba/se/GiopIDL/g.idl
33* Sunday, June 4, 2000 5:18:54 PM PDT
34*/
35
36abstract public class TargetAddressHelper
37{
38  private static String  _id = "IDL:messages/TargetAddress:1.0";
39
40  public static void insert (org.omg.CORBA.Any a, com.sun.corba.se.impl.protocol.giopmsgheaders.TargetAddress that)
41  {
42    org.omg.CORBA.portable.OutputStream out = a.create_output_stream ();
43    a.type (type ());
44    write (out, that);
45    a.read_value (out.create_input_stream (), type ());
46  }
47
48  public static com.sun.corba.se.impl.protocol.giopmsgheaders.TargetAddress extract (org.omg.CORBA.Any a)
49  {
50    return read (a.create_input_stream ());
51  }
52
53  private static org.omg.CORBA.TypeCode __typeCode = null;
54  synchronized public static org.omg.CORBA.TypeCode type ()
55  {
56    if (__typeCode == null)
57    {
58      org.omg.CORBA.TypeCode _disTypeCode0;
59      _disTypeCode0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_short);
60      _disTypeCode0 = org.omg.CORBA.ORB.init ().create_alias_tc (com.sun.corba.se.impl.protocol.giopmsgheaders.AddressingDispositionHelper.id (), "AddressingDisposition", _disTypeCode0);
61      org.omg.CORBA.UnionMember[] _members0 = new org.omg.CORBA.UnionMember [3];
62      org.omg.CORBA.TypeCode _tcOf_members0;
63      org.omg.CORBA.Any _anyOf_members0;
64
65      // Branch for object_key
66      _anyOf_members0 = org.omg.CORBA.ORB.init ().create_any ();
67      _anyOf_members0.insert_short ((short)com.sun.corba.se.impl.protocol.giopmsgheaders.KeyAddr.value);
68      _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_octet);
69      _tcOf_members0 = org.omg.CORBA.ORB.init ().create_sequence_tc (0, _tcOf_members0);
70      _members0[0] = new org.omg.CORBA.UnionMember (
71        "object_key",
72        _anyOf_members0,
73        _tcOf_members0,
74        null);
75
76      // Branch for profile
77      _anyOf_members0 = org.omg.CORBA.ORB.init ().create_any ();
78      _anyOf_members0.insert_short ((short)com.sun.corba.se.impl.protocol.giopmsgheaders.ProfileAddr.value);
79      _tcOf_members0 = org.omg.IOP.TaggedProfileHelper.type ();
80      _members0[1] = new org.omg.CORBA.UnionMember (
81        "profile",
82        _anyOf_members0,
83        _tcOf_members0,
84        null);
85
86      // Branch for ior
87      _anyOf_members0 = org.omg.CORBA.ORB.init ().create_any ();
88      _anyOf_members0.insert_short ((short)com.sun.corba.se.impl.protocol.giopmsgheaders.ReferenceAddr.value);
89      _tcOf_members0 = com.sun.corba.se.impl.protocol.giopmsgheaders.IORAddressingInfoHelper.type ();
90      _members0[2] = new org.omg.CORBA.UnionMember (
91        "ior",
92        _anyOf_members0,
93        _tcOf_members0,
94        null);
95      __typeCode = org.omg.CORBA.ORB.init ().create_union_tc (com.sun.corba.se.impl.protocol.giopmsgheaders.TargetAddressHelper.id (), "TargetAddress", _disTypeCode0, _members0);
96    }
97    return __typeCode;
98  }
99
100  public static String id ()
101  {
102    return _id;
103  }
104
105  public static com.sun.corba.se.impl.protocol.giopmsgheaders.TargetAddress read (org.omg.CORBA.portable.InputStream istream)
106  {
107    com.sun.corba.se.impl.protocol.giopmsgheaders.TargetAddress value = new com.sun.corba.se.impl.protocol.giopmsgheaders.TargetAddress ();
108    short _dis0 = (short)0;
109    _dis0 = istream.read_short ();
110    switch (_dis0)
111    {
112      case com.sun.corba.se.impl.protocol.giopmsgheaders.KeyAddr.value:
113        byte _object_key[] = null;
114        int _len1 = istream.read_long ();
115        _object_key = new byte[_len1];
116        istream.read_octet_array (_object_key, 0, _len1);
117        value.object_key (_object_key);
118        break;
119      case com.sun.corba.se.impl.protocol.giopmsgheaders.ProfileAddr.value:
120        org.omg.IOP.TaggedProfile _profile = null;
121        _profile = org.omg.IOP.TaggedProfileHelper.read (istream);
122        value.profile (_profile);
123        break;
124      case com.sun.corba.se.impl.protocol.giopmsgheaders.ReferenceAddr.value:
125        com.sun.corba.se.impl.protocol.giopmsgheaders.IORAddressingInfo _ior = null;
126        _ior = com.sun.corba.se.impl.protocol.giopmsgheaders.IORAddressingInfoHelper.read (istream);
127        value.ior (_ior);
128        break;
129      default:
130        throw new org.omg.CORBA.BAD_OPERATION ();
131    }
132    return value;
133  }
134
135  public static void write (org.omg.CORBA.portable.OutputStream ostream, com.sun.corba.se.impl.protocol.giopmsgheaders.TargetAddress value)
136  {
137    ostream.write_short (value.discriminator ());
138    switch (value.discriminator ())
139    {
140      case com.sun.corba.se.impl.protocol.giopmsgheaders.KeyAddr.value:
141        ostream.write_long (value.object_key ().length);
142        ostream.write_octet_array (value.object_key (), 0, value.object_key ().length);
143        break;
144      case com.sun.corba.se.impl.protocol.giopmsgheaders.ProfileAddr.value:
145        org.omg.IOP.TaggedProfileHelper.write (ostream, value.profile ());
146        break;
147      case com.sun.corba.se.impl.protocol.giopmsgheaders.ReferenceAddr.value:
148        com.sun.corba.se.impl.protocol.giopmsgheaders.IORAddressingInfoHelper.write (ostream, value.ior ());
149        break;
150      default:
151        throw new org.omg.CORBA.BAD_OPERATION ();
152    }
153  }
154
155}
156