0

我想修改内置类上内置方法的表述。此类方法表述出现在System词汇视图的部分中。例如,date该类有一个描述为 的方法{a date} is after {a date}。当然,我可以用我想看的词汇在自己的类上定义自己的方法,但我也想把现有的词汇去掉,这样在写规则的时候不会造成混乱。有什么方法可以改变这些预定义的表达方式或完全删除它们吗?

4

2 回答 2

1

在 ODM 分发示例中,您会在 studio\samples\authoring\bomextensions\rules\resources 中找到一个名为 boot.bom 的文件。

该文件包含“引导”(初始)词汇的标准信息。

您可以更改日期区域词汇,然后在您的项目中使用该 bom。

于 2020-12-19T09:07:45.270 回答
0

事实证明,这很容易实现,但很难理解。ODM 似乎正在用 ilog.rules.brl.Date BOM 类替换 java.time.ZonedDateTime BOM 类,至少在编辑器中的可见性方面是这样。

如果您使用自己的同名 BOM 类覆盖内置 BOM 类,则内置类和方法在 BOM 中不再可见。只需在任何规则项目的任何 BOM 条目中定义一个 BOM 类 ilog.rules.brl.Date 并将该类描述为“日期”。就像魔术一样,日期类及其所有方法从词汇视图的系统部分中消失,并且这些方法将不再显示在规则设计器的 Intellirule 编辑器中。

我正在使用此功能隐藏基于 java.util.Date 的内置日期处理方法。我们所有的代码现在都使用 java.time.ZonedDateTime 代替,现在我可以避免 ODM 尝试按照内置日期处理方法的要求将我的 ZonedDateTime 实例转换为 java.util.Date。我现在可以自由定义自己的方法来处理 ZonedDateTime 实例,而不会在编辑器中将它们与内置方法混淆。

一个棘手的方面是我定义的 ZonedDateTime BOM 类无法用语言表达。相反,ODM 使用我的 ilog.rules.brl.Date BOM 类的语言化。我的 ZonedDateTime BOM 类的成员(实际或虚拟)也不能用语言表达。当我将虚拟 BOM 成员添加到 ilog.rules.brl.Date 时,我还必须为该 Date 类指定一个执行名称—— ZonedDateTime 似乎工作正常,并且 {this} 在这些成员语言中表现得非常直观。

于 2020-12-16T21:25:12.863 回答