规则语言和扩展程序映射
从 BOM 创建的规则工件必须映射到 XOM 才能在运行时运行。 您可以使用缺省映射或基于规则语言函数或 Java™ 扩展器类的映射。
BOM 到 XOM 映射机制可以在运行时将基于 BOM 的规则工件转换为基于 XOM 的规则工件。 该机制提供了缺省映射,并支持两种显式映射:
规则语言映射: 将业务元素与基于 XOM 的规则语言代码相关联。 您可以调用函数,规则集参数和变量以及规则实例。
Extender 映射: 在 Java 扩展器类中,创建与业务类成员同名的静态元素。 只能在 Java XOM 上使用扩展程序映射。 如果您具有动态 XOM ,请使用规则语言映射。
要点: 对于规则语言映射,请将映射写入存储在 .b2xa 文件中的 ARL 中。
BOM 到 XOM 映射是在 BOM 到 XOM 映射 XML 模式中定义的。
在运行时,规则引擎使用以下顺序来查找正确的映射:
- 规则语言中的显式映射。
- 带有扩展程序类的显式映射。
- 隐式映射,缺省情况下,未指定任何内容。
如果缺省情况下规则引擎找不到映射,那么会发生错误。
覆盖方法的意外结果
BAL 对象运算符 is one of 不使用 BOM 到 XOM 重新定义的等于。 如果将 BOM 到 XOM 映射应用于覆盖其他方法的方法,那么可能会收到意外结果。 如果直接调用覆盖方法,那么将应用 BOM 到 XOM 映射。 但是,在间接调用 (例如,对超类或接口中的方法的调用) 中, BOM 到 XOM 映射不会应用于覆盖方法。
例如,如果覆盖 BOM 类中的方法 Object.equals(Object) 并提供 BOM 到 XOM 实现,那么当此类类的实例位于集合中时 (例如,调用 HashSet.add(Object) 或 ArrayList.contains(Object) 时) ,将调用 BOM 到 XOM 实现。