{
    "content": [
        {
            "type": "text",
            "text": "# idlj (man)\n\n## NAME\n\nidlj - Generates Java bindings for a specified Interface Definition Language (IDL) file.\n\n## SYNOPSIS\n\nidlj [ options ] idlfile\noptions\nThe  command-line  options.  See  Options.  Options  can appear in any order, but must\nprecede the idlfile.\nidlfile\nThe name of a file that contains Interface Definition Language (IDL) definitions.\n\n## DESCRIPTION\n\nThe IDL-to-Java Compiler generates the Java bindings for a specified IDL  file.  For  binding\ndetails,      see      Java      IDL:     IDL     to     Java     Language     Mapping     at\nhttp://docs.oracle.com/javase/8/docs/technotes/guides/idl/mapping/jidlMapping.html\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION** (57 subsections)\n- **OPTIONS** (6 subsections)\n- **RESTRICTIONS**\n- **KNOWN PROBLEMS**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "idlj",
        "section": "",
        "mode": "man",
        "summary": "idlj - Generates Java bindings for a specified Interface Definition Language (IDL) file.",
        "synopsis": "idlj [ options ] idlfile\noptions\nThe  command-line  options.  See  Options.  Options  can appear in any order, but must\nprecede the idlfile.\nidlfile\nThe name of a file that contains Interface Definition Language (IDL) definitions.",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Emit all types, including those found in #include files."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Defines what bindings to emit. The side parameter can be client, server, serverTIE, all, or allTIE. The -fserverTIE and -fallTIE options cause delegate model skeletons to be emitted. Defaults to -fclient when the flag is not specified. -i include-path By default, the current directory is scanned for included files. This option adds another directory. -i keep If a file to be generated already exists, then do not overwrite it. By default it is overwritten."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Suppress warning messages."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Generates skeletons compatible with pre-1.4 JDK ORBs. By default, the POA Inheritance Model server-side bindings are generated. This option provides backward-compatibility with earlier releases of the Java programming language by generating server-side bindings that are ImplBase Inheritance Model classes. -pkgPrefix typeprefix Wherever type is encountered at file scope, prefix the generated Java package name with prefix for all files generated for that type. The type is the simple name of either a top-level module, or an IDL type defined outside of any module. -pkgTranslate typepackage Whenever the module name type is encountered in an identifier, replace it in the identifier with package for all files in the generated Java package. Note that pkgPrefix changes are made first. The type value is the simple name of either a top- level module, or an IDL type defined outside of any module and must match the full package name exactly. If more than one translation matches an identifier, then the longest match is chosen as shown in the following example: Command: pkgTranslate type pkg -pkgTranslate type2.baz pkg2.fizz Resulting Translation: type => pkg type.ext => pkg.ext type.baz => pkg2.fizz type2.baz.pkg => pkg2.fizz.pkg The following package names org, org.omg, or any subpackages of org.omg cannot be translated. Any attempt to translate these packages results in uncompilable code, and the use of these packages as the first argument after -pkgTranslate is treated as an error. -skeletonName xxx%yyy Use xxx%yyy as the pattern for naming the skeleton. The defaults are: %POA for the POA base class (-fserver or -fall), and %ImplBase for the oldImplBase class (-oldImplBase) and (-fserver or -fall)). -td dir Use dir for the output directory instead of the current directory. -tieName xxx%yyy Use xxx%yyy according to the pattern. The defaults are: %POA for the POA base class (-fserverTie or -fallTie), and %Tie for the oldImplBase tie class (-oldImplBase) and (-fserverTie or -fallTie))"
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Displays release information and terminates."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Displays release information and terminates."
            }
        ],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 10,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 9,
                "subsections": [
                    {
                        "name": "idlj My.idl",
                        "lines": 2
                    },
                    {
                        "name": "idlj -fclient My.idl",
                        "lines": 3
                    },
                    {
                        "name": "idlg -fserver My.idl",
                        "lines": 3
                    },
                    {
                        "name": "idlj -fclient -fserver My.idl",
                        "lines": 1
                    },
                    {
                        "name": "idlj -fall My.idl",
                        "lines": 25
                    },
                    {
                        "name": "idlj -fclient -fserver -oldImplBase My.idl",
                        "lines": 1
                    },
                    {
                        "name": "idlj -fall -oldImplBase My.idl",
                        "lines": 9
                    },
                    {
                        "name": "idlj -fall My.idl",
                        "lines": 1
                    },
                    {
                        "name": "idlj -fallTIE My.idl",
                        "lines": 6
                    },
                    {
                        "name": "ORB orb = ORB.init(args, System.getProperties());",
                        "lines": 1
                    },
                    {
                        "name": "// Get reference to rootpoa & activate the POAManager",
                        "lines": 1
                    },
                    {
                        "name": "POA rootpoa = (POA)orb.resolve_initial_references(\"RootPOA\");",
                        "lines": 1
                    },
                    {
                        "name": "rootpoa.the_POAManager().activate();",
                        "lines": 1
                    },
                    {
                        "name": "// create servant and register it with the ORB",
                        "lines": 1
                    },
                    {
                        "name": "MyServant myDelegate = new MyServant();",
                        "lines": 1
                    },
                    {
                        "name": "myDelegate.setORB(orb);",
                        "lines": 1
                    },
                    {
                        "name": "// create a tie, with servant being the delegate.",
                        "lines": 1
                    },
                    {
                        "name": "MyPOATie tie = new MyPOATie(myDelegate, rootpoa);",
                        "lines": 1
                    },
                    {
                        "name": "// obtain the objectRef for the tie",
                        "lines": 1
                    },
                    {
                        "name": "My ref = tie._this(orb);",
                        "lines": 10
                    },
                    {
                        "name": "idlj -oldImplBase -fall My.idl",
                        "lines": 1
                    },
                    {
                        "name": "idlj -oldImplBase -fallTIE My.idl",
                        "lines": 5
                    },
                    {
                        "name": "ORB orb = ORB.init(args, System.getProperties());",
                        "lines": 1
                    },
                    {
                        "name": "// create servant and register it with the ORB",
                        "lines": 1
                    },
                    {
                        "name": "MyServant myDelegate = new MyServant();",
                        "lines": 1
                    },
                    {
                        "name": "myDelegate.setORB(orb);",
                        "lines": 1
                    },
                    {
                        "name": "// create a tie, with servant being the delegate.",
                        "lines": 1
                    },
                    {
                        "name": "MyPOATie tie = new MyPOATie(myDelegate);",
                        "lines": 1
                    },
                    {
                        "name": "// obtain the objectRef for the tie",
                        "lines": 1
                    },
                    {
                        "name": "My ref = tie._this(orb);",
                        "lines": 12
                    },
                    {
                        "name": "idlj -i /includes My.idl",
                        "lines": 3
                    },
                    {
                        "name": "idlj -i /includes -i /moreIncludes My.idl",
                        "lines": 5
                    },
                    {
                        "name": "includes=/includes;/moreIncludes",
                        "lines": 10
                    },
                    {
                        "name": "My.idl file:",
                        "lines": 1
                    },
                    {
                        "name": "#include <MyOther.idl>",
                        "lines": 1
                    },
                    {
                        "name": "interface My",
                        "lines": 2
                    },
                    {
                        "name": "MyOther.idl file:",
                        "lines": 1
                    },
                    {
                        "name": "interface MyOther",
                        "lines": 10
                    },
                    {
                        "name": "My.idl file:",
                        "lines": 1
                    },
                    {
                        "name": "#include <MyOther.idl>",
                        "lines": 1
                    },
                    {
                        "name": "interface My",
                        "lines": 3
                    },
                    {
                        "name": "MyOther.idl file:",
                        "lines": 1
                    },
                    {
                        "name": "interface MyOther",
                        "lines": 2
                    },
                    {
                        "name": "Embedded.idl",
                        "lines": 1
                    },
                    {
                        "name": "enum E {one, two, three};",
                        "lines": 7
                    },
                    {
                        "name": "./MyHolder.java",
                        "lines": 1
                    },
                    {
                        "name": "./MyHelper.java",
                        "lines": 1
                    },
                    {
                        "name": "./_MyStub.java",
                        "lines": 1
                    },
                    {
                        "name": "./MyPackage",
                        "lines": 1
                    },
                    {
                        "name": "./MyPackage/EHolder.java",
                        "lines": 1
                    },
                    {
                        "name": "./MyPackage/EHelper.java",
                        "lines": 1
                    },
                    {
                        "name": "./MyPackage/E.java",
                        "lines": 1
                    },
                    {
                        "name": "./My.java",
                        "lines": 3
                    },
                    {
                        "name": "Widgets.idl file:",
                        "lines": 1
                    },
                    {
                        "name": "module Widgets",
                        "lines": 11
                    },
                    {
                        "name": "idlj -pkgPrefix Widgets com.abc Widgets.idl",
                        "lines": 19
                    },
                    {
                        "name": "-keep My.idl",
                        "lines": 13
                    }
                ]
            },
            {
                "name": "OPTIONS",
                "lines": 7,
                "subsections": [
                    {
                        "name": "-demitAll",
                        "lines": 2
                    },
                    {
                        "name": "-fside",
                        "lines": 12
                    },
                    {
                        "name": "-noWarn",
                        "lines": 2
                    },
                    {
                        "name": "-oldImplBase",
                        "lines": 53
                    },
                    {
                        "name": "-nowarn, -verbose",
                        "lines": 2
                    },
                    {
                        "name": "-version",
                        "lines": 2
                    }
                ]
            },
            {
                "name": "RESTRICTIONS",
                "lines": 7,
                "subsections": []
            },
            {
                "name": "KNOWN PROBLEMS",
                "lines": 5,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "idlj - Generates Java bindings for a specified Interface Definition Language (IDL) file.\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "idlj [ options ] idlfile\n\n\noptions\nThe  command-line  options.  See  Options.  Options  can appear in any order, but must\nprecede the idlfile.\n\nidlfile\nThe name of a file that contains Interface Definition Language (IDL) definitions.\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "The IDL-to-Java Compiler generates the Java bindings for a specified IDL  file.  For  binding\ndetails,      see      Java      IDL:     IDL     to     Java     Language     Mapping     at\nhttp://docs.oracle.com/javase/8/docs/technotes/guides/idl/mapping/jidlMapping.html\n\nSome earlier releases of the IDL-to-Java compiler were named idltojava.\n\nEMIT CLIENT AND SERVER BINDINGS\nThe following idlj command generates an IDL file named My.idl with client-side bindings.\n",
                "subsections": [
                    {
                        "name": "idlj My.idl",
                        "content": "The previous syntax is equivalent to the following:\n"
                    },
                    {
                        "name": "idlj -fclient My.idl",
                        "content": "The next example generates the server-side bindings, and includes  the  client-side  bindings\nplus the skeleton, all of which are POA (Inheritance Model).\n"
                    },
                    {
                        "name": "idlg -fserver My.idl",
                        "content": "If  you  want to generate both client and server-side bindings, then use one of the following\n(equivalent) commands:\n"
                    },
                    {
                        "name": "idlj -fclient -fserver My.idl",
                        "content": ""
                    },
                    {
                        "name": "idlj -fall My.idl",
                        "content": "There are two possible server-side models: the Portal Servant Inheritance Model and  the  Tie\nModel. See Tie Delegation Model.\n\nPortable  Servant  Inheritance  Model.  The default server-side model is the Portable Servant\nInheritance Model. Given an interface My defined in My.idl, the file MyPOA.java is generated.\nYou must provide the implementation for the My interface, and the My interface  must  inherit\nfrom   the   MyPOA   class.   MyPOA.java   is   a  stream-based  skeleton  that  extends  the\norg.omg.PortableServer.Servant                            class                            at\nhttp://docs.oracle.com/javase/8/docs/api/org/omg/PortableServer/Servant.html The My interface\nimplements  the  callHandler  interface  and the operations interface associated with the IDL\ninterface the skeleton implements.The PortableServer module for the Portable  Object  Adapter\n(POA)   defines   the   native   Servant   type.   See   Portable  Object  Adapter  (POA)  at\nhttp://docs.oracle.com/javase/8/docs/technotes/guides/idl/POA.html In  the  Java  programming\nlanguage,  the  Servant  type  is mapped to the Java org.omg.PortableServer.Servant class. It\nserves as the base class for all POA servant implementations and provides a number of methods\nthat can be called by the application programmer, and methods that are called by the POA  and\nthat  can be overridden by the user to control aspects of servant behavior.Another option for\nthe Inheritance Model is to use the -oldImplBase flag to generate server-side  bindings  that\nare  compatible  with  releases  of  the  Java  programming  language before Java SE 1.4. The\n-oldImplBase flag is nonstandard, and these APIs are deprecated. You would use this flag only\nfor compatibility with existing servers written in Java SE 1.3. In that case, you would  need\nto  modify an existing make file to add the -oldImplBase flag to the idlj compiler. Otherwise\nPOA-based server-side mappings are generated.  To  generate  server-side  bindings  that  are\nbackward compatible, do the following:\n"
                    },
                    {
                        "name": "idlj -fclient -fserver -oldImplBase My.idl",
                        "content": ""
                    },
                    {
                        "name": "idlj -fall -oldImplBase My.idl",
                        "content": "Given  an  interface  My  defined in My.idl, the file MyImplBase.java is generated. You must\nprovide the implementation for the My interface, and the My interface must inherit  from  the\nMyImplBase class.\n\nTie  Delegation  Model.  The  other  server-side  model  is  called  the Tie Model. This is a\ndelegation model. Because it is not possible to generate ties and skeletons at the same time,\nthey must be generated separately. The following commands generate the bindings for  the  Tie\nModel:\n"
                    },
                    {
                        "name": "idlj -fall My.idl",
                        "content": ""
                    },
                    {
                        "name": "idlj -fallTIE My.idl",
                        "content": "For  the  My  interface,  the  second command generates MyPOATie.java. The constructor to the\nMyPOATie class takes  a  delegate.  In  this  example,  using  the  default  POA  model,  the\nconstructor  also  needs  a POA. You must provide the implementation for the delegate, but it\ndoes not have to inherit from any other class, only the interface  MyOperations.  To  use  it\nwith the ORB, you must wrap your implementation within the MyPOATie class, for example:\n"
                    },
                    {
                        "name": "ORB orb = ORB.init(args, System.getProperties());",
                        "content": ""
                    },
                    {
                        "name": "// Get reference to rootpoa & activate the POAManager",
                        "content": ""
                    },
                    {
                        "name": "POA rootpoa = (POA)orb.resolve_initial_references(\"RootPOA\");",
                        "content": ""
                    },
                    {
                        "name": "rootpoa.the_POAManager().activate();",
                        "content": ""
                    },
                    {
                        "name": "// create servant and register it with the ORB",
                        "content": ""
                    },
                    {
                        "name": "MyServant myDelegate = new MyServant();",
                        "content": ""
                    },
                    {
                        "name": "myDelegate.setORB(orb);",
                        "content": ""
                    },
                    {
                        "name": "// create a tie, with servant being the delegate.",
                        "content": ""
                    },
                    {
                        "name": "MyPOATie tie = new MyPOATie(myDelegate, rootpoa);",
                        "content": ""
                    },
                    {
                        "name": "// obtain the objectRef for the tie",
                        "content": ""
                    },
                    {
                        "name": "My ref = tie._this(orb);",
                        "content": "You  might  want  to  use  the  Tie  model instead of the typical Inheritance model when your\nimplementation must inherit from  some  other  implementation.  Java  allows  any  number  of\ninterface  inheritance,  but  there  is  only  one slot for class inheritance. If you use the\ninheritance model, then that slot is used up. With the Tie Model, that slot is freed  up  for\nyour  own  use.  The  drawback is that it introduces a level of indirection: one extra method\ncall occurs when a method is called.\n\nFor server-side generation, Tie model bindings that are compatible with versions of  the  IDL\nto Java language mapping in versions earlier than Java SE 1.4.\n"
                    },
                    {
                        "name": "idlj -oldImplBase -fall My.idl",
                        "content": ""
                    },
                    {
                        "name": "idlj -oldImplBase -fallTIE My.idl",
                        "content": "For  the  My  interface,  the this generates MyTie.java. The constructor to the MyTie class\ntakes an impl object. You must provide the implementation for impl, but it does not  have  to\ninherit from any other class, only the interface HelloOperations. But to use it with the ORB,\nyou must wrap your implementation within MyTie, for example:\n"
                    },
                    {
                        "name": "ORB orb = ORB.init(args, System.getProperties());",
                        "content": ""
                    },
                    {
                        "name": "// create servant and register it with the ORB",
                        "content": ""
                    },
                    {
                        "name": "MyServant myDelegate = new MyServant();",
                        "content": ""
                    },
                    {
                        "name": "myDelegate.setORB(orb);",
                        "content": ""
                    },
                    {
                        "name": "// create a tie, with servant being the delegate.",
                        "content": ""
                    },
                    {
                        "name": "MyPOATie tie = new MyPOATie(myDelegate);",
                        "content": ""
                    },
                    {
                        "name": "// obtain the objectRef for the tie",
                        "content": ""
                    },
                    {
                        "name": "My ref = tie._this(orb);",
                        "content": "SPECIFY ALTERNATE LOCATIONS FOR EMITTED FILES\nIf you want to direct the emitted files to a directory other than the current directory, then\ncall the compiler this way: idlj -td /altdir My.idl.\n\nFor  the  My  interface,  the  bindings  are  emitted  to  /altdir/My.java,  etc., instead of\n./My.java.\n\nSPECIFY ALTERNATE LOCATIONS FOR INCLUDE FILES\nIf the My.idl file includes another idl file, MyOther.idl, then the compiler assumes that the\nMyOther.idl file resides in the local directory. If it resides  in  /includes,  for  example,\nthen you call the compiler with the following command:\n"
                    },
                    {
                        "name": "idlj -i /includes My.idl",
                        "content": "If My.idl also included Another.idl that resided in /moreIncludes, for example, then you call\nthe compiler with the following command:\n"
                    },
                    {
                        "name": "idlj -i /includes -i /moreIncludes My.idl",
                        "content": "Because  this  form of include can become long, another way to indicate to the compiler where\nto search for included files is provided. This  technique  is  similar  to  the  idea  of  an\nenvironment  variable.  Create  a file named idl.config in a directory that is listed in your\nCLASSPATH variable. Inside of idl.config, provide a line with the following form:\n"
                    },
                    {
                        "name": "includes=/includes;/moreIncludes",
                        "content": "The compiler will find this file and read in the includes list. Note that in this example the\nseparator character between the two directories is a semicolon (;). This separator  character\nis  platform dependent. On the Windows platform, use a semicolon, on the Unix platform, use a\ncolon, and so on.\n\nEMIT BINDINGS FOR INCLUDE FILES\nBy default, only those interfaces, structures, and so on, that are defined in the idl file on\nthe command line have Java bindings generated for them. The types defined in  included  files\nare not generated. For example, assume the following two idl files:\n"
                    },
                    {
                        "name": "My.idl file:",
                        "content": ""
                    },
                    {
                        "name": "#include <MyOther.idl>",
                        "content": ""
                    },
                    {
                        "name": "interface My",
                        "content": "{\n};"
                    },
                    {
                        "name": "MyOther.idl file:",
                        "content": ""
                    },
                    {
                        "name": "interface MyOther",
                        "content": "{\n};\n\nThere  is  a  caveat  to  the default rule. Any #include statements that appear at the global\nscope are treated as described. These  #include  statements  can  be  thought  of  as  import\nstatements.  The #include statements that appear within an enclosed scope are treated as true\n#include statements, which means that the code within the included file is treated as  though\nit appeared in the original file and, therefore, Java bindings are emitted for it. Here is an\nexample:\n"
                    },
                    {
                        "name": "My.idl file:",
                        "content": ""
                    },
                    {
                        "name": "#include <MyOther.idl>",
                        "content": ""
                    },
                    {
                        "name": "interface My",
                        "content": "{\n#include <Embedded.idl>\n};"
                    },
                    {
                        "name": "MyOther.idl file:",
                        "content": ""
                    },
                    {
                        "name": "interface MyOther",
                        "content": "{\n};"
                    },
                    {
                        "name": "Embedded.idl",
                        "content": ""
                    },
                    {
                        "name": "enum E {one, two, three};",
                        "content": "Runidlj  My.idlto  generate the following list of Java files. Notice that MyOther.java is not\ngenerated because it is defined in an import-like #include. But E.java was generated  because\nit  was  defined  in  a  true #include. Notice that because the Embedded.idl file is included\nwithin the scope of the interface My, it appears within the scope of My  (in  MyPackage).  If\nthe  -emitAll  flag  had  been  used,  then  all  types in all included files would have been\nemitted.\n"
                    },
                    {
                        "name": "./MyHolder.java",
                        "content": ""
                    },
                    {
                        "name": "./MyHelper.java",
                        "content": ""
                    },
                    {
                        "name": "./_MyStub.java",
                        "content": ""
                    },
                    {
                        "name": "./MyPackage",
                        "content": ""
                    },
                    {
                        "name": "./MyPackage/EHolder.java",
                        "content": ""
                    },
                    {
                        "name": "./MyPackage/EHelper.java",
                        "content": ""
                    },
                    {
                        "name": "./MyPackage/E.java",
                        "content": ""
                    },
                    {
                        "name": "./My.java",
                        "content": "INSERT PACKAGE PREFIXES\nSuppose that you work for a company named ABC that has constructed the following IDL file:\n"
                    },
                    {
                        "name": "Widgets.idl file:",
                        "content": ""
                    },
                    {
                        "name": "module Widgets",
                        "content": "{\ninterface W1 {...};\ninterface W2 {...};\n};\n\nIf you run this file through the IDL-to-Java compiler, then the Java bindings for W1  and  W2\nare  placed  within  the  Widgets package. There is an industry convention that states that a\ncompany's packages should reside within a package named com.<company name>.  To  follow  this\nconvention, the package name should be com.abc.Widgets. To place this package prefix onto the\nWidgets module, execute the following:\n"
                    },
                    {
                        "name": "idlj -pkgPrefix Widgets com.abc Widgets.idl",
                        "content": "If  you  have  an IDL file that includes Widgets.idl, then the -pkgPrefix flag must appear in\nthat command also. If it does not, then your IDL file will be looking for a  Widgets  package\nrather than a com.abc.Widgets package.\n\nIf  you  have  a  number  of these packages that require prefixes, then it might be easier to\nplace them into the idl.config file described previously. Each package prefix line should  be\nof  the  form:  PkgPrefix.<type>=<prefix>.  The  line  for  the  previous  example  would  be\nPkgPrefix.Widgets=com.abc. This option does not affect the Repository ID.\n\nDEFINE SYMBOLS BEFORE COMPILATION\nYou might need to define a symbol for compilation that is not defined within  the  IDL  file,\nperhaps  to  include  debugging  code  in  the  bindings.  The command idlj -d MYDEF My.idlis\nequivalent to putting the line #define MYDEF inside My.idl.\n\nPRESERVE PREEXISTING BINDINGS\nIf the Java binding files already  exist,  then  the  -keep  flag  keeps  the  compiler  from\noverwriting  them. The default is to generate all files without considering that they already\nexist. If you have customized those files (which you  should  not  do  unless  you  are  very\ncomfortable  with  their  contents),  then  the -keep option is very useful. The command idlj"
                    },
                    {
                        "name": "-keep My.idl",
                        "content": "VIEW COMPILATION PROGRESS\nThe IDL-to-Java compiler generates status messages as it progresses  through  its  phases  of\nexecution. Use the -v option to activate the verbose mode: idlj -v My.idl.\n\nBy default the compiler does not operate in verbose mode\n\nDISPLAY VERSION INFORMATION\nTo  display the build version of the IDL-to-Java compiler, specify the -version option on the\ncommand-line: idlj -version.\n\nVersion information  also  appears  within  the  bindings  generated  by  the  compiler.  Any\nadditional options appearing on the command-line are ignored.\n"
                    }
                ]
            },
            "OPTIONS": {
                "content": "-d symbol\nThis is equivalent to the following line in an IDL file:\n\n#define symbol\n\n\n",
                "subsections": [
                    {
                        "name": "-demitAll",
                        "content": "Emit all types, including those found in #include files.\n"
                    },
                    {
                        "name": "-fside",
                        "content": "Defines  what  bindings  to emit. The side parameter can be client, server, serverTIE,\nall, or allTIE. The -fserverTIE and -fallTIE options cause delegate model skeletons to\nbe emitted. Defaults to -fclient when the flag is not specified.\n\n-i include-path\nBy default, the current directory is scanned for  included  files.  This  option  adds\nanother directory.\n\n-i keep\nIf  a  file to be generated already exists, then do not overwrite it. By default it is\noverwritten.\n"
                    },
                    {
                        "name": "-noWarn",
                        "content": "Suppress warning messages.\n"
                    },
                    {
                        "name": "-oldImplBase",
                        "content": "Generates skeletons compatible with pre-1.4 JDK ORBs. By default, the POA  Inheritance\nModel  server-side bindings are generated. This option provides backward-compatibility\nwith earlier releases of the  Java  programming  language  by  generating  server-side\nbindings that are ImplBase Inheritance Model classes.\n\n-pkgPrefix typeprefix\nWherever  type  is  encountered  at file scope, prefix the generated Java package name\nwith prefix for all files generated for that type. The type  is  the  simple  name  of\neither a top-level module, or an IDL type defined outside of any module.\n\n-pkgTranslate typepackage\nWhenever  the  module  name  type  is  encountered in an identifier, replace it in the\nidentifier with package for all  files  in  the  generated  Java  package.  Note  that\npkgPrefix  changes  are made first. The type value is the simple name of either a top-\nlevel module, or an IDL type defined outside of any module and  must  match  the  full\npackage name exactly.\n\nIf  more  than one translation matches an identifier, then the longest match is chosen\nas shown in the following example:\n\nCommand:\n\npkgTranslate type pkg -pkgTranslate type2.baz pkg2.fizz\n\n\n\nResulting Translation:\n\ntype => pkg\ntype.ext => pkg.ext\ntype.baz => pkg2.fizz\ntype2.baz.pkg => pkg2.fizz.pkg\n\n\n\nThe following package names org, org.omg, or any  subpackages  of  org.omg  cannot  be\ntranslated.  Any attempt to translate these packages results in uncompilable code, and\nthe use of these packages as the first argument after -pkgTranslate is treated  as  an\nerror.\n\n-skeletonName xxx%yyy\nUse xxx%yyy as the pattern for naming the skeleton. The defaults are: %POA for the POA\nbase   class   (-fserver   or   -fall),  and  %ImplBase  for  the  oldImplBase  class\n(-oldImplBase) and (-fserver or -fall)).\n\n-td dir\nUse dir for the output directory instead of the current directory.\n\n-tieName xxx%yyy\nUse xxx%yyy according to the pattern. The defaults are: %POA for the  POA  base  class\n(-fserverTie  or -fallTie), and %Tie for the oldImplBase tie class (-oldImplBase) and\n(-fserverTie or -fallTie))\n"
                    },
                    {
                        "name": "-nowarn, -verbose",
                        "content": "Displays release information and terminates.\n"
                    },
                    {
                        "name": "-version",
                        "content": "Displays release information and terminates.\n"
                    }
                ]
            },
            "RESTRICTIONS": {
                "content": "Escaped identifiers in the global scope cannot have the same spelling as IDL primitive types,\nObject, or ValueBase. This is because the symbol table is preloaded with  these  identifiers.\nAllowing  them to be redefined would overwrite their original definitions. Possible permanent\nrestriction.\n\nThe fixed IDL type is not supported.\n",
                "subsections": []
            },
            "KNOWN PROBLEMS": {
                "content": "No import is generated for global identifiers. If you call an unexported local  impl  object,\nthen  you  do  get  an  exception,  but  it  seems to be due to a NullPointerException in the\nServerDelegate DSI code.\n\nJDK 8                                     21 November 2013                                   idlj(1)",
                "subsections": []
            }
        }
    }
}