1 /* TCKind.java -- java to IDL mapping constants.
2    Copyright (C) 2005 Free Software Foundation, Inc.
3 
4 This file is part of GNU Classpath.
5 
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10 
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 General Public License for more details.
15 
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING.  If not, write to the
18 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301 USA.
20 
21 Linking this library statically or dynamically with other modules is
22 making a combined work based on this library.  Thus, the terms and
23 conditions of the GNU General Public License cover the whole
24 combination.
25 
26 As a special exception, the copyright holders of this library give you
27 permission to link this library with independent modules to produce an
28 executable, regardless of the license terms of these independent
29 modules, and to copy and distribute the resulting executable under
30 terms of your choice, provided that you also meet, for each linked
31 independent module, the terms and conditions of the license of that
32 module.  An independent module is a module which is not derived from
33 or based on this library.  If you modify this library, you may extend
34 this exception to your version of the library, but you are not
35 obligated to do so.  If you do not wish to do so, delete this
36 exception statement from your version. */
37 
38 
39 package org.omg.CORBA;
40 
41 
42 /**
43  * The basic constants, used in java to IDL mapping.
44  * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
45  */
46 public class TCKind
47 {
48   /**
49    * The integer constant, indicating IDL data type
50    * <code>null</code>.
51    */
52   public static final int _tk_null = 0;
53 
54   /**
55    * The integer constant, indicating IDL data type
56    * <code>void</code>.
57    */
58   public static final int _tk_void = 1;
59 
60   /**
61    * The integer constant, indicating IDL data type
62    * <code>short</code>.
63    */
64   public static final int _tk_short = 2;
65 
66   /**
67    * The integer constant, indicating IDL data type
68    * <code>long</code>.
69    */
70   public static final int _tk_long = 3;
71 
72   /**
73    * The integer constant, indicating IDL data type
74    * <code>ushort</code>.
75    */
76   public static final int _tk_ushort = 4;
77 
78   /**
79    * The integer constant, indicating IDL data type
80    * <code>ulong</code>.
81    */
82   public static final int _tk_ulong = 5;
83 
84   /**
85    * The integer constant, indicating IDL data type
86    * <code>float</code>.
87    */
88   public static final int _tk_float = 6;
89 
90   /**
91    * The integer constant, indicating IDL data type
92    * <code>double</code>.
93    */
94   public static final int _tk_double = 7;
95 
96   /**
97    * The integer constant, indicating IDL data type
98    * <code>boolean</code>.
99    */
100   public static final int _tk_boolean = 8;
101 
102   /**
103    * The integer constant, indicating IDL data type
104    * <code>char</code>.
105    */
106   public static final int _tk_char = 9;
107 
108   /**
109    * The integer constant, indicating IDL data type
110    * <code>octet</code>.
111    */
112   public static final int _tk_octet = 10;
113 
114   /**
115    * The integer constant, indicating IDL data type
116    * <code>any</code>.
117    */
118   public static final int _tk_any = 11;
119 
120   /**
121    * The integer constant, indicating IDL data type
122    * <code>TypeCode</code>.
123    */
124   public static final int _tk_TypeCode = 12;
125 
126   /**
127    * The integer constant, indicating IDL data type
128    * <code>Principal</code>.
129    */
130   public static final int _tk_Principal = 13;
131 
132   /**
133    * The integer constant, indicating IDL data type
134    * <code>objref</code>.
135    */
136   public static final int _tk_objref = 14;
137 
138   /**
139    * The integer constant, indicating IDL data type
140    * <code>struct</code>.
141    */
142   public static final int _tk_struct = 15;
143 
144   /**
145    * The integer constant, indicating IDL data type
146    * <code>union</code>.
147    */
148   public static final int _tk_union = 16;
149 
150   /**
151    * The integer constant, indicating IDL data type
152    * <code>enum</code>.
153    */
154   public static final int _tk_enum = 17;
155 
156   /**
157    * The integer constant, indicating IDL data type
158    * <code>string</code>.
159    */
160   public static final int _tk_string = 18;
161 
162   /**
163    * The integer constant, indicating IDL data type
164    * <code>sequence</code>.
165    */
166   public static final int _tk_sequence = 19;
167 
168   /**
169    * The integer constant, indicating IDL data type
170    * <code>array</code>.
171    */
172   public static final int _tk_array = 20;
173 
174   /**
175    * The integer constant, indicating IDL data type
176    * <code>alias</code>.
177    */
178   public static final int _tk_alias = 21;
179 
180   /**
181    * The integer constant, indicating IDL data type
182    * <code>except</code>.
183    */
184   public static final int _tk_except = 22;
185 
186   /**
187    * The integer constant, indicating IDL data type
188    * <code>longlong</code>.
189    */
190   public static final int _tk_longlong = 23;
191 
192   /**
193    * The integer constant, indicating IDL data type
194    * <code>ulonglong</code>.
195    */
196   public static final int _tk_ulonglong = 24;
197 
198   /**
199    * The integer constant, indicating IDL data type
200    * <code>longdouble</code>.
201    */
202   public static final int _tk_longdouble = 25;
203 
204   /**
205    * The integer constant, indicating IDL data type
206    * <code>wchar</code>.
207    */
208   public static final int _tk_wchar = 26;
209 
210   /**
211    * The integer constant, indicating IDL data type
212    * <code>wstring</code>.
213    */
214   public static final int _tk_wstring = 27;
215 
216   /**
217    * The integer constant, indicating IDL data type
218    * <code>fixed</code>.
219    */
220   public static final int _tk_fixed = 28;
221 
222   /**
223    * The integer constant, indicating IDL data type
224    * <code>value</code>.
225    */
226   public static final int _tk_value = 29;
227 
228   /**
229    * The integer constant, indicating IDL data type
230    * <code>value_box</code>.
231    */
232   public static final int _tk_value_box = 30;
233 
234   /**
235    * The integer constant, indicating IDL data type
236    * <code>native</code>.
237    */
238   public static final int _tk_native = 31;
239 
240   /**
241    * The integer constant, indicating IDL data type
242    * <code>abstract_interface</code>.
243    */
244   public static final int _tk_abstract_interface = 32;
245 
246   /**
247    * The TCKind constant, indicating IDL data type
248    * <code>null</code>
249    */
250   public static final TCKind tk_null = new TCKind(_tk_null);
251 
252   /**
253    * The TCKind constant, indicating IDL data type
254    * <code>void</code>
255    */
256   public static final TCKind tk_void = new TCKind(_tk_void);
257 
258   /**
259    * The TCKind constant, indicating IDL data type
260    * <code>short</code>
261    */
262   public static final TCKind tk_short = new TCKind(_tk_short);
263 
264   /**
265    * The TCKind constant, indicating IDL data type
266    * <code>long</code>
267    */
268   public static final TCKind tk_long = new TCKind(_tk_long);
269 
270   /**
271    * The TCKind constant, indicating IDL data type
272    * <code>ushort</code>
273    */
274   public static final TCKind tk_ushort = new TCKind(_tk_ushort);
275 
276   /**
277    * The TCKind constant, indicating IDL data type
278    * <code>ulong</code>
279    */
280   public static final TCKind tk_ulong = new TCKind(_tk_ulong);
281 
282   /**
283    * The TCKind constant, indicating IDL data type
284    * <code>float</code>
285    */
286   public static final TCKind tk_float = new TCKind(_tk_float);
287 
288   /**
289    * The TCKind constant, indicating IDL data type
290    * <code>double</code>
291    */
292   public static final TCKind tk_double = new TCKind(_tk_double);
293 
294   /**
295    * The TCKind constant, indicating IDL data type
296    * <code>boolean</code>
297    */
298   public static final TCKind tk_boolean = new TCKind(_tk_boolean);
299 
300   /**
301    * The TCKind constant, indicating IDL data type
302    * <code>char</code>
303    */
304   public static final TCKind tk_char = new TCKind(_tk_char);
305 
306   /**
307    * The TCKind constant, indicating IDL data type
308    * <code>octet</code>
309    */
310   public static final TCKind tk_octet = new TCKind(_tk_octet);
311 
312   /**
313    * The TCKind constant, indicating IDL data type
314    * <code>any</code>
315    */
316   public static final TCKind tk_any = new TCKind(_tk_any);
317 
318   /**
319    * The TCKind constant, indicating IDL data type
320    * <code>TypeCode</code>
321    */
322   public static final TCKind tk_TypeCode = new TCKind(_tk_TypeCode);
323 
324   /**
325    * The TCKind constant, indicating IDL data type
326    * <code>Principal</code>
327    */
328   public static final TCKind tk_Principal = new TCKind(_tk_Principal);
329 
330   /**
331    * The TCKind constant, indicating IDL data type
332    * <code>objref</code>
333    */
334   public static final TCKind tk_objref = new TCKind(_tk_objref);
335 
336   /**
337    * The TCKind constant, indicating IDL data type
338    * <code>struct</code>
339    */
340   public static final TCKind tk_struct = new TCKind(_tk_struct);
341 
342   /**
343    * The TCKind constant, indicating IDL data type
344    * <code>union</code>
345    */
346   public static final TCKind tk_union = new TCKind(_tk_union);
347 
348   /**
349    * The TCKind constant, indicating IDL data type
350    * <code>enum</code>
351    */
352   public static final TCKind tk_enum = new TCKind(_tk_enum);
353 
354   /**
355    * The TCKind constant, indicating IDL data type
356    * <code>string</code>
357    */
358   public static final TCKind tk_string = new TCKind(_tk_string);
359 
360   /**
361    * The TCKind constant, indicating IDL data type
362    * <code>sequence</code>
363    */
364   public static final TCKind tk_sequence = new TCKind(_tk_sequence);
365 
366   /**
367    * The TCKind constant, indicating IDL data type
368    * <code>array</code>
369    */
370   public static final TCKind tk_array = new TCKind(_tk_array);
371 
372   /**
373    * The TCKind constant, indicating IDL data type
374    * <code>alias</code>
375    */
376   public static final TCKind tk_alias = new TCKind(_tk_alias);
377 
378   /**
379    * The TCKind constant, indicating IDL data type
380    * <code>except</code>
381    */
382   public static final TCKind tk_except = new TCKind(_tk_except);
383 
384   /**
385    * The TCKind constant, indicating IDL data type
386    * <code>longlong</code>
387    */
388   public static final TCKind tk_longlong = new TCKind(_tk_longlong);
389 
390   /**
391    * The TCKind constant, indicating IDL data type
392    * <code>ulonglong</code>
393    */
394   public static final TCKind tk_ulonglong = new TCKind(_tk_ulonglong);
395 
396   /**
397    * The TCKind constant, indicating IDL data type
398    * <code>longdouble</code>
399    */
400   public static final TCKind tk_longdouble = new TCKind(_tk_longdouble);
401 
402   /**
403    * The TCKind constant, indicating IDL data type
404    * <code>wchar</code>
405    */
406   public static final TCKind tk_wchar = new TCKind(_tk_wchar);
407 
408   /**
409    * The TCKind constant, indicating IDL data type
410    * <code>wstring</code>
411    */
412   public static final TCKind tk_wstring = new TCKind(_tk_wstring);
413 
414   /**
415    * The TCKind constant, indicating IDL data type
416    * <code>fixed</code>
417    */
418   public static final TCKind tk_fixed = new TCKind(_tk_fixed);
419 
420   /**
421    * The TCKind constant, indicating IDL data type
422    * <code>value</code>
423    */
424   public static final TCKind tk_value = new TCKind(_tk_value);
425 
426   /**
427    * The TCKind constant, indicating IDL data type
428    * <code>value_box</code>
429    */
430   public static final TCKind tk_value_box = new TCKind(_tk_value_box);
431 
432   /**
433    * The TCKind constant, indicating IDL data type
434    * <code>native</code>
435    */
436   public static final TCKind tk_native = new TCKind(_tk_native);
437 
438   /**
439    * The TCKind constant, indicating IDL data type
440    * <code>abstract_interface</code>
441    */
442   public static final TCKind tk_abstract_interface =
443     new TCKind(_tk_abstract_interface);
444 
445   /**
446    * The kind value for this instance.
447    */
448   private final int _value;
449 
450   /**
451    * The array of all tk_... instances, sorted by the kind number.
452    *
453    * As long as the kind numbers make the continuos sequence, starting from 0,
454    * the members can be found just by direct indexing.
455    */
456   private static final TCKind[] tk =
457     new TCKind[]
458     {
459       tk_null, tk_void, tk_short, tk_long, tk_ushort, tk_ulong, tk_float,
460       tk_double, tk_boolean, tk_char, tk_octet, tk_any, tk_TypeCode,
461       tk_Principal, tk_objref, tk_struct, tk_union, tk_enum, tk_string,
462       tk_sequence, tk_array, tk_alias, tk_except, tk_longlong, tk_ulonglong,
463       tk_longdouble, tk_wchar, tk_wstring, tk_fixed, tk_value, tk_value_box,
464       tk_native, tk_abstract_interface
465     };
466 
467   /**
468    * Creates a new TCKind instance with the given integer constant value.
469    * @deprecated it is recommended to use {@link #from_int(int)} that
470    * reuses existing TCKind object instead of allocating the new instance.
471    * @param kind one of the <code>_tk_..</code> constants.
472    */
TCKind(int kind)473   protected TCKind(int kind)
474   {
475     _value = kind;
476   }
477 
478   /**
479    * Returns the integer value, corresponding this instance of TCKind.
480    * @return the <code>_tk_..</code> value, matching this instance.
481    */
value()482   public int value()
483   {
484     return _value;
485   }
486 
487   /**
488    * Return a TCKind object, matching the given integer code.
489    * @param _tk_nnn the TCKind code, one of <code>_tk_..</code> constants.
490    * @return the matching instance of TCKind, on of tk_.. constants.
491    * @throws BAD_PARAM if the given integer constant is not one of the
492    * valid <code>_tk_..</code> constants.
493    */
from_int(int _tk_nnn)494   public static TCKind from_int(int _tk_nnn)
495   {
496     try {
497       return tk[_tk_nnn];
498     }
499     catch (ArrayIndexOutOfBoundsException aex) {
500       throw new BAD_PARAM("Invalid _tk_ code "+_tk_nnn);
501     }
502   }
503 
504 }
505