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