ADF BC develop guide 中文版

Page 115

6.9.4你需要了解自定义Java类些什么 查看下面关于自定义Java类的补充说明部分 6.9.4.1关于一个实体对象的架构基类 当你使用一个“XML-only”实体对象时,在运行时的功能是提供默认ADF业务组件实现类。每 个自定义Java类产生时都将自动的继承一个适合的ADF业务组件基类,因此你的代码继承了默认的 行为并且能很容易的添加或使用它。一个实体对象将扩展EntityImpl,,然而这实体定义类也将扩 展EntityDefImpl(这些类都在oracle.jbo.server包中)。 6.9.4.2你可以安全地为自定义组件文件添加代码 基于以前多数不好的经验,一些开发者在产生的Java源文件中添加自己的代码时会犹豫不决 的。每个自定义的Java源代码文件,JDeveloper都会在文件的最上方创建和维护包含像下面那样的 注释来说明在这文件中添加你自己的代码是安全的。 // --------------------------------------------------------------------// --- File generated by Oracle ADF Business Components Design Time. // --- Custom code may be added to this class. // --- Warning: Do not modify method signatures of generated methods. // --------------------------------------------------------------------当你点击组件编辑器中的OK或Apply按钮时,JDeveloper不会盲目的更新文件。代替的是,它 对方法执行巧妙的更新,它需要维护,且保持你的自定义代码的完整性。 6.9.4.3配置默认的Java产生参数 当你需要定制他们在运行时的行为或更喜欢用强类型访问邦定变量或视图行属性时,你想看到怎样 为一个视图对象产生自定义Java类。 为ADF组件自定义Java类配置默认设置,你可以选择Tools | Preferences...菜单并打开 BusinessComponents页面来设置你的参数以便在以后创建的业务组件中使用。Oracle推荐开发者在 不是自定义Java类中使用ADF业务组件默认的设置。当你在一个自定义Java代码中加入一个特殊的 需求,你可以在这节里面学到。你可使用你需要的一个自定义java组件来举例说明。随着时间的过 去,你会发现默认的设置在你的工作中最有用。 6.9.4.4属性索引和调用访问器产生码 正如你所看到的,实体对象在被设计时的功能不是在XML-only方式中就是使用一个关联的XML 组件定义和一个自定义Java类。由于这个特点,属性值没有被存储在一个实体类的私有成员域中, 因此这样的一个类是不出现在XML-only位置中的。代替的是,除了一个名称外,属性在实体的XML 组件定义中被分配的索引从0开始,并在文件中按关联的<Attribute>和<AccessorAttribute>标签 有序的排序着。在运行时,一个实体行中的属性值通过基类EntityImpl被存储在一个稀疏的数组结 构中处理,编入的索引是通过在实体列表中属性的位置编入的。然而,当你为实体对象启用定制Java 类时,实现与JDeveloper在实体对象类中自动维护产生的代码相关。 理解这些代码的用途很有用。 例如,实体ServiceRequest 的定制Java类中, 例 6–10 显示了每个属性或者访问器属性有有个相 应产生的整型常量,JDeveloper确保这些常量值正确的映射XML组件定义中的属性的顺序。 例 6–10 在定制实体java类中属性常量自动维护 public class ServiceRequestImpl extends EntityImpl { public static final int SVRID = 0; public static final int STATUS = 1; public static final int REQUESTDATE = 2; public static final int PROBLEMDESCRIPTION = 3; public static final int PRODID = 4;


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.