Class COM.ibm.idl.toJava.Compile
All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class COM.ibm.idl.toJava.Compile

java.lang.Object
   |
   +----COM.ibm.idl.Compile
           |
           +----COM.ibm.idl.toJava.Compile

public class Compile
extends Compile
Compiler usage:

java COM.ibm.idl.toJava.Compile [options] <idl file>

where <idl file> is the name of a file containing IDL definitions, and [options] is any combination of the options listed below. The options may appear in any order.

Options:
-i <include path>
By default, the current directory is scanned for included files. This option adds another directory.
-d <symbol>
This is equivalent to the following line in an IDL file: #define <symbol>
-v
Verbose mode.
-SOM
Parse the IDL file as SOM IDL rather than standard CORBA IDL.
--------------------
There are some caveats which you should be aware of if you use the -SOM flag. SOM IDL should soon disappear in favor of the IDL which is defined by CORBA, so it should not be used unless necessary. Unfortunately, it is necessary if any SOM IDL is included. The following are the primary differences between CORBA IDL and SOM IDL:
Pointers
CORBA IDL does not have pointers. All *'s are treated as arrays, so short* is translated to short[].
void*
void* is translated to byte[]
Anonymous sequences
Sequences in SOM IDL can appear as method returns and method parameters. These sequences are anonymous (in contrast to sequences in typedefs which are named). Sequences have holders. The names of the holders for these anonymous sequences are of the form _uN__DDD where DDD is some sequence of digits.
--------------------
Known bugs:
#if <conditional expression> not completely implemented.
Currently, only identifiers may appear in the <conditional expression> Boolean expressions are not yet implemented.
Large unsigned long numbers in constant expressions generate a semantic exception.
Java does not have the concept of unsigned ints. IDL's unsigned long maps to Java's int, so any number greater than Integer.MAX_INT generates a semantic exception. In JDK1.1, there is a class called BigNum which will be used to fix this bug.
Unknown results when syntactic units cross file boundaries.
#include is treated as it is typically used: to include information from other files which are self-contained units in themselves. When the included files are not self contained units, unexpected results will occur. For example:
(file a.idl)
interface a {};
(file b.idl)
module b
{
#include "a.idl" // interface a is NOT placed inside module b.
};
----------------
(file c.idl)
interface a
(file d.idl>
#include "c.idl"
{}; // both c.idl and d.idl generate syntax errors.

Method Index

 o factories()
 o main(String[])

Methods

 o main
  public static void main(String args[])
 o factories
  protected Factories factories()
Overrides:
factories in class Compile

All Packages  Class Hierarchy  This Package  Previous  Next  Index