Java 包装器生成输出

Java™ 包装器生成输出如下所示:

可以使用生成的 bean 来包装从非 EGL Java 类(如 servlet、EJB 或 Java 应用程序)对服务器程序的调用。将生成下列类型的类:

下表显示了生成的各种类型的 Java 包装器部件的名称:

生成的 Java 包装器部件的名称
部件类型和名称 生成的内容
名为 P 的程序 PWrapper.java 中名为 PWrapper 的类
用作参数的名为 R 的记录 R.java 中名为 R 的类
用作参数的记录 R 中具有子结构的区域 S R.java 中名为 R.S 的类
名为 L 的链接选项部件 名为 L.properties 的链接属性文件
  1. 对于指示的部件类型,可能存在两个或更多个同名部件。在该情况下,第二个部件的名称具有附加的后缀 $v2。第三个部件的名称将具有 $v3 后缀,第四个将具有 $v4 等等。

当请求将某个程序部件生成为 Java 包装器时,EGL 会为下列每个可执行文件生成 Java 类:

另外,为每个记录生成的类包括具有下列特征的每个结构项的内部类(或内部类中的类):
生成的每个类都存储在文件中。EGL 生成器创建在 Java 包装器中使用的名称,如下所示:

如果程序的其中一个参数是记录,则 EGL 还会为该变量生成包装器类。如果程序 Prog 具有 typeDef 命名为 Rec 的记录参数,则该参数的包装器类将名为 Rec。如果参数的 typeDef 与程序同名,则该参数的包装器类将具有“Record”后缀。

如果记录参数具有数组项且该项下面具有其它项,则生成器还会生成包装器。这种具有子结构的数组包装器成为记录包装器的内部类。在大多数情况下,Rec 中名为 AItem 的具有子结构的数组项将由名为 Rec.AItem 的类包装。记录可包含两个同名的具有子结构的数组项,在这种情况下,项包装器是使用该项的限定名来命名的。如果第一个 AItem 的限定名是 Top1.AItem 且第二个的限定名是 Top2.Middle2.AItem,则类将被命名为 Rec.Top1$_aItemRec.Top2$_middle2$_aItem。如果具有子结构的数组的名称与程序的名称相同,则具有子结构的数组的包装器类将具有 Structure 后缀。

设置和获取低层项的值的方法被生成到每个记录包装器和具有子结构的数组包装器中。如果记录或具有子结构的数组中有两个同名的低层项,则生成器使用在前面段落中描述的限定名方案。

其它方法被生成到 SQL 记录变量的包装器中。对于记录变量中的每一项,生成器会创建获取和设置其空指示符值的方法以及获取和设置其 SQL 长度指示符的方法。

一旦编译了类,就可以使用 Javadoc 工具来构建 classname.html 文件。HTML 文件描述类的公共接口。如果使用 Javadoc 创建的 HTML 文件,则确保它是 EGL Java 包装器。从 VisualAge® Generator Java 包装器生成的 HTML 文件不同于从 EGL Java 包装器生成的那些 HTML 文件。

示例

以下是一个带有具有子结构的数组的记录部件的示例:

   Record myRecord type basicRecord
     10 MyTopStructure[3];
       15 MyStructureItem01 CHAR(3);
       15 MyStructureItem02 CHAR(3);
   end
对于程序部件,输出文件命名如下所示:
  aliasWrapper.java
其中
alias
是别名(如果有的话),它是在程序部件中指定的。如果未指定外部名,则使用程序部件的名称。
对于声明为程序参数的每个记录,输出文件命名如下所示:
recordName.java
其中
recordName
是记录部件的名称
对于具有子结构的数组,内部类的名称和位置取决于数组名在记录中是否唯一:
  • 如果数组名在记录中是唯一的,则内部类位于记录类内且命名如下所示:
    recordName.siName
    其中
    recordName
    是记录部件的名称
    siName
    是数组的名称
  • 如果数组名在记录中不是唯一的,则内部类的名称取决于数组的标准名称,用美元符号($)和下划线(_)的组合来分隔限定符。例如,如果数组在记录的第三层中,则生成的类是记录类的内部类且命名如下所示:
    Topname$_Secondname$_Siname    
    其中
    Topname
    是顶层结构项的名称
    Secondname
    是第二层结构项的名称
    Siname
    是具有子结构的数组项的名称
    如果另一个同名数组直接作为最高层记录的下级,则内部类也处于记录类中且命名如下所示:
    Topname$_Siname
    其中
    Topname
    是最高层结构项的名称
    Siname
    是具有子结构的数组项的名称

    最后,请参照以下情况:具有子结构的数组的名称在记录中不是唯一的,并且该数组是另一个具有子结构的数组的下级,后一个数组的名称在记录中也不是唯一的。下级数组的类是作为内部类的内部类生成的。

当生成 Java 包装器时,还会生成 Java 属性文件和链接属性文件(如果请求在运行时设置该链接选项的话)。

相关任务
生成 Java 包装器

使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.