001 /* TCKind.java -- java to IDL mapping constants. 002 Copyright (C) 2005 Free Software Foundation, Inc. 003 004 This file is part of GNU Classpath. 005 006 GNU Classpath is free software; you can redistribute it and/or modify 007 it under the terms of the GNU General Public License as published by 008 the Free Software Foundation; either version 2, or (at your option) 009 any later version. 010 011 GNU Classpath is distributed in the hope that it will be useful, but 012 WITHOUT ANY WARRANTY; without even the implied warranty of 013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 014 General Public License for more details. 015 016 You should have received a copy of the GNU General Public License 017 along with GNU Classpath; see the file COPYING. If not, write to the 018 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 019 02110-1301 USA. 020 021 Linking this library statically or dynamically with other modules is 022 making a combined work based on this library. Thus, the terms and 023 conditions of the GNU General Public License cover the whole 024 combination. 025 026 As a special exception, the copyright holders of this library give you 027 permission to link this library with independent modules to produce an 028 executable, regardless of the license terms of these independent 029 modules, and to copy and distribute the resulting executable under 030 terms of your choice, provided that you also meet, for each linked 031 independent module, the terms and conditions of the license of that 032 module. An independent module is a module which is not derived from 033 or based on this library. If you modify this library, you may extend 034 this exception to your version of the library, but you are not 035 obligated to do so. If you do not wish to do so, delete this 036 exception statement from your version. */ 037 038 039 package org.omg.CORBA; 040 041 042 /** 043 * The basic constants, used in java to IDL mapping. 044 * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) 045 */ 046 public class TCKind 047 { 048 /** 049 * The integer constant, indicating IDL data type 050 * <code>null</code>. 051 */ 052 public static final int _tk_null = 0; 053 054 /** 055 * The integer constant, indicating IDL data type 056 * <code>void</code>. 057 */ 058 public static final int _tk_void = 1; 059 060 /** 061 * The integer constant, indicating IDL data type 062 * <code>short</code>. 063 */ 064 public static final int _tk_short = 2; 065 066 /** 067 * The integer constant, indicating IDL data type 068 * <code>long</code>. 069 */ 070 public static final int _tk_long = 3; 071 072 /** 073 * The integer constant, indicating IDL data type 074 * <code>ushort</code>. 075 */ 076 public static final int _tk_ushort = 4; 077 078 /** 079 * The integer constant, indicating IDL data type 080 * <code>ulong</code>. 081 */ 082 public static final int _tk_ulong = 5; 083 084 /** 085 * The integer constant, indicating IDL data type 086 * <code>float</code>. 087 */ 088 public static final int _tk_float = 6; 089 090 /** 091 * The integer constant, indicating IDL data type 092 * <code>double</code>. 093 */ 094 public static final int _tk_double = 7; 095 096 /** 097 * The integer constant, indicating IDL data type 098 * <code>boolean</code>. 099 */ 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 */ 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 */ 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 */ 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 }