- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Drools规则语言中各种宏函数用法简介Drools规则语言中各种宏函数用法简介Drools规则语言中各种宏函数用法简介
Drools规则语言中各种宏函数用法简介
在 Drools 当中,在RHS 里面,提供了一些对当前Working Memory 实现快速操作的宏函数或对象,比如insert/insertLogical、update 和retract 就可以实现对当前Working Memory中的Fact 对象进行新增、删除或者是修改;如果您觉得还要使用Drools 当中提供的其它方法,那么您还可以使用另一外宏对象drools,通过该对象可以使用更多的操作当前WorkingMemory 的方法;同时Drools 还提供了一个名为kcontext 的宏对象,使我们可以通过该对象直接访问当前Working Memory 的KnowledgeRuntime。
insert
函数insert 的作用与我们在Java 类当中调用StatefulKnowledgeSession 对象的insert 方法的作用相同,都是用来将一个Fact 对象插入到当前的Working Memory 当中。它的基本用法格式如下:
insert(new Object());
一旦调用insert 宏函数,那么Drools 会重新与所有的规则再重新匹配一次,对于没有设置no-loop 属性为true 的规则,如果条件满足,不管其之前是否执行过都会再执行一次,这个特性不仅存在于insert 宏函数上,后面介绍的update、retract 宏函数同样具有该特性,所以在某些情况下因考虑不周调用insert、update 或retract 容易发生死循环。
insertLogical
insertLogical 作用与insert 类似,它的作用也是将一个Fact 对象插入到当前的WorkingMemroy 当中。
update
update 函数意义与其名称一样,用来实现对当前Working Memory 当中的Fact 进行更新,update 宏函数的作用与StatefulSession 对象的update 方法的作用基本相同,都是用来告诉当前的Working Memory 该Fact 对象已经发生了变化。它的用法有两种形式,一种是直接更新一个Fact 对象,另一种为通过指定FactHandle 来更新与指定FactHandle 对应的Fact 对象。
retract
和StatefulSession 的retract 方法一样,宏函数retract 也是用来将Working Memory 当中某个Fact 对象从Working Memory 当中删除。
drools
如果您希望在规则文件里更多的实现对当前的Working Memory 控制,那么可以使用drools 宏对象实现,通过使用drools 宏对象可以实现在规则文件里直接访问WorkingMemory。在前面介绍update 宏函数的时候我们就使用drools 宏对象来访问当前的WorkingMemory,得到一个指定的Fact 对象的FactHandle。同时前面介绍的insert、insertLogical、update 和retract 宏函数的功能皆可以通过使用drools 宏对象来实现。
kcontext
kcontext 也是Drools 提供的一个宏对象, 它的作用主要是用来得到当前KnowledgeRuntime 对象,KnowledgeRuntime 对象可以实现与引擎的各种交互。
modify
modify 是一个表达式块,它可以快速实现对Fact 对象多个属性进行修改,修改完成后会自动更新到当前的Working Memory 当中。它的基本语法格式如下:
modify(fact-expression){
修改Fact 属性的表达式[,修改Fact 属性的表达式*]
}
您可能关注的文档
- 3-2-9(长江小学)学校综合管理制度.doc
- 2陈大学区姜洼小学家长学校“家教知识”专题培训.doc
- 3-6年级上册美术面试题.docx
- 2月电影观影指南七部新片大年初一见.doc
- 29课课外阅读课文.doc
- 3000常用字(按使用频度排序).doc
- 30个好习惯让你精通英语.doc
- 30°的文明及奇异岛屿.doc
- 30个必收藏的英语句型.docx
- 30个点子让婚礼与众不同经典法则.doc
- 2021-2022学年湖南省常德市安乡县四年级上学期期中语文真题及答案.pdf
- 2023-2024学年河南省南阳市社旗县四年级上学期期中数学真题及答案.pdf
- 2022-2023学年云南省曲靖市四年级下学期期末数学真题及答案.pdf
- 2021-2022学年河南省周口市鹿邑县二年级下册月考语文真题及答案.pdf
- 2018年河南焦作解放区教师招聘考试真题及答案.pdf
- 2019年江西公务员行测考试真题及答案-乡镇.pdf
- 2019中国石油报社应届高校毕业生招聘试题及答案解析.pdf
- 光大银行招聘应届毕业生能力素质测试笔试真题及答案.pdf
- 2024年广西百色教师招聘考试模拟题及答案.pdf
- 2021-2022学年浙江绍兴诸暨市五年级上册语文期末试卷及答案.pdf
文档评论(0)