1 /*
2  * Copyright (c) 1997, 2010, 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 
26 package org.omg.CORBA;
27 
28 
29 /**
30  * The Java mapping of the IDL enum <code>TCKind</code>, which
31  * specifies the kind of a <code>TypeCode</code> object.  There is
32  * one kind for each primitive and essential IDL data type.
33  * <P>
34  * The class <code>TCKind</code> consists of:
35  * <UL>
36  * <LI>a set of <code>int</code> constants, one for each
37  * kind of IDL data type.  These <code>int</code> constants
38  * make it possible to use a <code>switch</code> statement.
39  * <LI>a set of <code>TCKind</code> constants, one for each
40  * kind of IDL data type.  The <code>value</code> field for
41  * each <code>TCKind</code> instance is initialized with
42  * the <code>int</code> constant that corresponds with
43  * the IDL data type that the instance represents.
44  * <LI>the method <code>from_int</code>for converting
45  * an <code>int</code> to its
46  * corresponding <code>TCKind</code> instance
47  * <P>Example:
48  * <PRE>
49  *      org.omg.CORBA.TCKind k = org.omg.CORBA.TCKind.from_int(
50  *                         org.omg.CORBA.TCKind._tk_string);
51  * </PRE>
52  * The variable <code>k</code> represents the <code>TCKind</code>
53  * instance for the IDL type <code>string</code>, which is
54  * <code>tk_string</code>.
55  * <P>
56  * <LI>the method <code>value</code> for accessing the
57  * <code>_value</code> field of a <code>TCKind</code> constant
58  * <P>Example:
59  * <PRE>
60  *   int i = org.omg.CORBA.TCKind.tk_char.value();
61  * </PRE>
62  * The variable <code>i</code> represents 9, the value for the
63  * IDL data type <code>char</code>.
64  * </UL>
65  * <P>The <code>value</code> field of a <code>TCKind</code> instance
66  * is the CDR encoding used for a <code>TypeCode</code> object in
67  * an IIOP message.
68  */
69 
70 public class TCKind {
71 
72     /**
73      * The <code>int</code> constant for a <code>null</code> IDL data type.
74      */
75     public static final int _tk_null = 0;
76 
77     /**
78      * The <code>int</code> constant for the IDL data type <code>void</code>.
79      */
80     public static final int _tk_void = 1;
81 
82     /**
83      * The <code>int</code> constant for the IDL data type <code>short</code>.
84      */
85     public static final int _tk_short = 2;
86 
87     /**
88      * The <code>int</code> constant for the IDL data type <code>long</code>.
89      */
90     public static final int _tk_long = 3;
91 
92     /**
93      * The <code>int</code> constant for the IDL data type <code>ushort</code>.
94      */
95     public static final int _tk_ushort = 4;
96 
97     /**
98      * The <code>int</code> constant for the IDL data type <code>ulong</code>.
99      */
100     public static final int _tk_ulong = 5;
101 
102     /**
103      * The <code>int</code> constant for the IDL data type <code>float</code>.
104      */
105     public static final int _tk_float = 6;
106 
107     /**
108      * The <code>int</code> constant for the IDL data type <code>double</code>.
109      */
110     public static final int _tk_double = 7;
111 
112     /**
113      * The <code>int</code> constant for the IDL data type <code>boolean</code>.
114      */
115     public static final int _tk_boolean = 8;
116 
117     /**
118      * The <code>int</code> constant for the IDL data type <code>char</code>.
119      */
120     public static final int _tk_char = 9;
121 
122     /**
123      * The <code>int</code> constant for the IDL data type <code>octet</code>.
124      */
125     public static final int _tk_octet = 10;
126 
127     /**
128      * The <code>int</code> constant for the IDL data type <code>any</code>.
129      */
130     public static final int _tk_any = 11;
131 
132     /**
133      * The <code>int</code> constant for the IDL data type <code>TypeCode</code>.
134      */
135     public static final int _tk_TypeCode = 12;
136 
137     /**
138      * The <code>int</code> constant for the IDL data type <code>Principal</code>.
139      */
140     public static final int _tk_Principal = 13;
141 
142     /**
143      * The <code>int</code> constant for the IDL data type <code>objref</code>.
144      */
145     public static final int _tk_objref = 14;
146 
147     /**
148      * The <code>int</code> constant for the IDL data type <code>struct</code>.
149      */
150     public static final int _tk_struct = 15;
151 
152     /**
153      * The <code>int</code> constant for the IDL data type <code>union</code>.
154      */
155     public static final int _tk_union = 16;
156 
157     /**
158      * The <code>int</code> constant for the IDL data type <code>enum</code>.
159      */
160     public static final int _tk_enum = 17;
161 
162     /**
163      * The <code>int</code> constant for the IDL data type <code>string</code>.
164      */
165     public static final int _tk_string = 18;
166 
167     /**
168      * The <code>int</code> constant for the IDL data type <code>sequence</code>.
169      */
170     public static final int _tk_sequence = 19;
171 
172     /**
173      * The <code>int</code> constant for the IDL data type <code>array</code>.
174      */
175     public static final int _tk_array = 20;
176 
177     /**
178      * The <code>int</code> constant for the IDL data type <code>alias</code>.
179      */
180     public static final int _tk_alias = 21;
181 
182     /**
183      * The <code>int</code> constant for the IDL data type <code>except</code>.
184      */
185     public static final int _tk_except = 22;
186 
187     /**
188      * The <code>int</code> constant for the IDL data type <code>longlong</code>.
189      */
190     public static final int _tk_longlong = 23;
191 
192     /**
193      * The <code>int</code> constant for the IDL data type <code>ulonglong</code>.
194      */
195     public static final int _tk_ulonglong = 24;
196 
197     /**
198      * The <code>int</code> constant for the IDL data type <code>longdouble</code>.
199      */
200     public static final int _tk_longdouble = 25;
201 
202     /**
203      * The <code>int</code> constant for the IDL data type <code>wchar</code>.
204      */
205     public static final int _tk_wchar = 26;
206 
207     /**
208      * The <code>int</code> constant for the IDL data type <code>wstring</code>.
209      */
210     public static final int _tk_wstring = 27;
211 
212     /**
213      * The <code>int</code> constant for the IDL data type <code>fixed</code>.
214      */
215     public static final int _tk_fixed = 28;
216 
217     /**
218      * The <code>int</code> constant for the IDL data type <code>value</code>.
219      */
220     public static final int _tk_value = 29;             // orbos 98-01-18: Objects By Value
221 
222     /**
223      * The <code>int</code> constant for the IDL data type <code>value_box</code>.
224      */
225     public static final int _tk_value_box = 30; // orbos 98-01-18: Objects By Value
226 
227     /**
228      * The <code>int</code> constant for the IDL data type <code>native</code>.
229      */
230     public static final int _tk_native = 31;        // Verify
231 
232     /**
233      * The <code>int</code> constant for the IDL data type <code>abstract interface</code>.
234      */
235     public static final int _tk_abstract_interface = 32;
236 
237 
238     /**
239      * The <code>TCKind</code> constant whose <code>value</code> field is
240      * initialized with <code>TCKind._tk_null</code>.
241      */
242     public static final TCKind tk_null = new TCKind(_tk_null);
243 
244     /**
245      * The <code>TCKind</code> constant whose <code>value</code> field is
246      * initialized with <code>TCKind._tk_void</code>.
247      */
248     public static final TCKind tk_void = new TCKind(_tk_void);
249 
250     /**
251      * The <code>TCKind</code> constant whose <code>value</code> field is
252      * initialized with <code>TCKind._tk_short</code>.
253      */
254     public static final TCKind tk_short = new TCKind(_tk_short);
255 
256     /**
257      * The <code>TCKind</code> constant whose <code>value</code> field is
258      * initialized with <code>TCKind._tk_long</code>.
259      */
260     public static final TCKind tk_long = new TCKind(_tk_long);
261 
262     /**
263      * The <code>TCKind</code> constant whose <code>value</code> field is
264      * initialized with <code>TCKind._tk_ushort</code>.
265      */
266     public static final TCKind tk_ushort = new TCKind(_tk_ushort);
267 
268     /**
269      * The <code>TCKind</code> constant whose <code>value</code> field is
270      * initialized with <code>TCKind._tk_ulong</code>.
271      */
272     public static final TCKind tk_ulong = new TCKind(_tk_ulong);
273 
274     /**
275      * The <code>TCKind</code> constant whose <code>value</code> field is
276      * initialized with <code>TCKind._tk_float</code>.
277      */
278     public static final TCKind tk_float = new TCKind(_tk_float);
279 
280     /**
281      * The <code>TCKind</code> constant whose <code>value</code> field is
282      * initialized with <code>TCKind._tk_double</code>.
283      */
284     public static final TCKind tk_double = new TCKind(_tk_double);
285 
286     /**
287      * The <code>TCKind</code> constant whose <code>value</code> field is
288      * initialized with <code>TCKind._tk_boolean</code>.
289      */
290     public static final TCKind tk_boolean = new TCKind(_tk_boolean);
291 
292     /**
293      * The <code>TCKind</code> constant whose <code>value</code> field is
294      * initialized with <code>TCKind._tk_char</code>.
295      */
296     public static final TCKind tk_char = new TCKind(_tk_char);
297 
298     /**
299      * The <code>TCKind</code> constant whose <code>value</code> field is
300      * initialized with <code>TCKind._tk_octet</code>.
301      */
302     public static final TCKind tk_octet = new TCKind(_tk_octet);
303 
304     /**
305      * The <code>TCKind</code> constant whose <code>value</code> field is
306      * initialized with <code>TCKind._tk_any</code>.
307      */
308     public static final TCKind tk_any = new TCKind(_tk_any);
309 
310     /**
311      * The <code>TCKind</code> constant whose <code>value</code> field is
312      * initialized with <code>TCKind._tk_TypeCode</code>.
313      */
314     public static final TCKind tk_TypeCode = new TCKind(_tk_TypeCode);
315 
316     /**
317      * The <code>TCKind</code> constant whose <code>value</code> field is
318      * initialized with <code>TCKind._tk_Principal</code>.
319      */
320     public static final TCKind tk_Principal = new TCKind(_tk_Principal);
321 
322     /**
323      * The <code>TCKind</code> constant whose <code>value</code> field is
324      * initialized with <code>TCKind._tk_objref</code>.
325      */
326     public static final TCKind tk_objref = new TCKind(_tk_objref);
327 
328     /**
329      * The <code>TCKind</code> constant whose <code>value</code> field is
330      * initialized with <code>TCKind._tk_struct</code>.
331      */
332     public static final TCKind tk_struct = new TCKind(_tk_struct);
333 
334     /**
335      * The <code>TCKind</code> constant whose <code>value</code> field is
336      * initialized with <code>TCKind._tk_union</code>.
337      */
338     public static final TCKind tk_union = new TCKind(_tk_union);
339 
340     /**
341      * The <code>TCKind</code> constant whose <code>value</code> field is
342      * initialized with <code>TCKind._tk_enum</code>.
343      */
344     public static final TCKind tk_enum = new TCKind(_tk_enum);
345 
346     /**
347      * The <code>TCKind</code> constant whose <code>value</code> field is
348      * initialized with <code>TCKind._tk_string</code>.
349      */
350     public static final TCKind tk_string = new TCKind(_tk_string);
351 
352     /**
353      * The <code>TCKind</code> constant whose <code>value</code> field is
354      * initialized with <code>TCKind._tk_sequence</code>.
355      */
356     public static final TCKind tk_sequence = new TCKind(_tk_sequence);
357 
358     /**
359      * The <code>TCKind</code> constant whose <code>value</code> field is
360      * initialized with <code>TCKind._tk_array</code>.
361      */
362     public static final TCKind tk_array = new TCKind(_tk_array);
363 
364     /**
365      * The <code>TCKind</code> constant whose <code>value</code> field is
366      * initialized with <code>TCKind._tk_alias</code>.
367      */
368     public static final TCKind tk_alias = new TCKind(_tk_alias);
369 
370     /**
371      * The <code>TCKind</code> constant whose <code>value</code> field is
372      * initialized with <code>TCKind._tk_except</code>.
373      */
374     public static final TCKind tk_except = new TCKind(_tk_except);
375 
376     /**
377      * The <code>TCKind</code> constant whose <code>value</code> field is
378      * initialized with <code>TCKind._tk_longlong</code>.
379      */
380     public static final TCKind tk_longlong = new TCKind(_tk_longlong);
381 
382     /**
383      * The <code>TCKind</code> constant whose <code>value</code> field is
384      * initialized with <code>TCKind._tk_ulonglong</code>.
385      */
386     public static final TCKind tk_ulonglong = new TCKind(_tk_ulonglong);
387 
388     /**
389      * The <code>TCKind</code> constant whose <code>value</code> field is
390      * initialized with <code>TCKind._tk_longdouble</code>.
391      */
392     public static final TCKind tk_longdouble = new TCKind(_tk_longdouble);
393 
394     /**
395      * The <code>TCKind</code> constant whose <code>value</code> field is
396      * initialized with <code>TCKind._tk_wchar</code>.
397      */
398     public static final TCKind tk_wchar = new TCKind(_tk_wchar);
399 
400     /**
401      * The <code>TCKind</code> constant whose <code>value</code> field is
402      * initialized with <code>TCKind._tk_wstring</code>.
403      */
404     public static final TCKind tk_wstring = new TCKind(_tk_wstring);
405 
406     /**
407      * The <code>TCKind</code> constant whose <code>value</code> field is
408      * initialized with <code>TCKind._tk_fixed</code>.
409      */
410     public static final TCKind tk_fixed = new TCKind(_tk_fixed);
411 
412     // orbos 98-01-18: Objects By Value -- begin
413 
414     /**
415      * The <code>TCKind</code> constant whose <code>value</code> field is
416      * initialized with <code>TCKind._tk_value</code>.
417      */
418     public static final TCKind tk_value = new TCKind(_tk_value);
419 
420     /**
421      * The <code>TCKind</code> constant whose <code>value</code> field is
422      * initialized with <code>TCKind._tk_value_box</code>.
423      */
424     public static final TCKind tk_value_box = new TCKind(_tk_value_box);
425     // orbos 98-01-18: Objects By Value -- end
426 
427     /**
428      * The <code>TCKind</code> constant whose <code>value</code> field is
429      * initialized with <code>TCKind._tk_native</code>.
430      */
431     public static final TCKind tk_native = new TCKind(_tk_native);
432 
433     /**
434      * The <code>TCKind</code> constant whose <code>value</code> field is
435      * initialized with <code>TCKind._tk_abstract_interface</code>.
436      */
437     public static final TCKind tk_abstract_interface = new TCKind(_tk_abstract_interface);
438 
439 
440 
441 
442     /**
443      * Retrieves the value of this <code>TCKind</code> instance.
444      *
445      * @return  the <code>int</code> that represents the kind of
446      * IDL data type for this <code>TCKind</code> instance
447      */
value()448     public int value() {
449         return _value;
450     }
451 
452     /**
453      * Converts the given <code>int</code> to the corresponding
454      * <code>TCKind</code> instance.
455      *
456      * @param i the <code>int</code> to convert.  It must be one of
457      *         the <code>int</code> constants in the class
458      *         <code>TCKind</code>.
459      * @return  the <code>TCKind</code> instance whose <code>value</code>
460      * field matches the given <code>int</code>
461      * @exception  BAD_PARAM  if the given <code>int</code> does not
462      * match the <code>_value</code> field of
463      * any <code>TCKind</code> instance
464      */
from_int(int i)465     public static TCKind from_int(int i) {
466         switch (i) {
467         case _tk_null:
468             return tk_null;
469         case _tk_void:
470             return tk_void;
471         case _tk_short:
472             return tk_short;
473         case _tk_long:
474             return tk_long;
475         case _tk_ushort:
476             return tk_ushort;
477         case _tk_ulong:
478             return tk_ulong;
479         case _tk_float:
480             return tk_float;
481         case _tk_double:
482             return tk_double;
483         case _tk_boolean:
484             return tk_boolean;
485         case _tk_char:
486             return tk_char;
487         case _tk_octet:
488             return tk_octet;
489         case _tk_any:
490             return tk_any;
491         case _tk_TypeCode:
492             return tk_TypeCode;
493         case _tk_Principal:
494             return tk_Principal;
495         case _tk_objref:
496             return tk_objref;
497         case _tk_struct:
498             return tk_struct;
499         case _tk_union:
500             return tk_union;
501         case _tk_enum:
502             return tk_enum;
503         case _tk_string:
504             return tk_string;
505         case _tk_sequence:
506             return tk_sequence;
507         case _tk_array:
508             return tk_array;
509         case _tk_alias:
510             return tk_alias;
511         case _tk_except:
512             return tk_except;
513         case _tk_longlong:
514             return tk_longlong;
515         case _tk_ulonglong:
516             return tk_ulonglong;
517         case _tk_longdouble:
518             return tk_longdouble;
519         case _tk_wchar:
520             return tk_wchar;
521         case _tk_wstring:
522             return tk_wstring;
523         case _tk_fixed:
524             return tk_fixed;
525         case _tk_value:         // orbos 98-01-18: Objects By Value
526             return tk_value;
527         case _tk_value_box:     // orbos 98-01-18: Objects By Value
528             return tk_value_box;
529         case _tk_native:
530             return tk_native;
531         case _tk_abstract_interface:
532             return tk_abstract_interface;
533         default:
534             throw new org.omg.CORBA.BAD_PARAM();
535         }
536     }
537 
538 
539     /**
540     * Creates a new <code>TCKind</code> instance initialized with the given
541     * <code>int</code>.
542     * @deprecated Do not use this constructor as this method should be private
543     * according to the OMG specification. Use {@link #from_int(int)} instead.
544     *
545     * @param  _value the <code>int</code> to convert.  It must be one of
546     *         the <code>int</code> constants in the class
547     *         <code>TCKind</code>.
548     */
549     @Deprecated
TCKind(int _value)550     protected TCKind(int _value){
551         this._value = _value;
552     }
553     private int _value;
554 }
555