网站:
JavaEye 作者:
hxpwork 发表时间: 2007-08-04 14:19 此文章来自于
http://www.iteye.com
声明:本文系JavaEye网站原创文章,未经JavaEye网站或者作者本人书面许可,任何其他网站严禁擅自发表本文,否则必将追究法律责任!
原文链接:
http://www.iteye.com/topic/108906
Fact 数据插入
-
- final CustomerEx a = new CustomerEx( "A",
- "Gold" );
- final CustomerEx b = new CustomerEx( "B",
- "Platinum" );
- final CustomerEx c = new CustomerEx( "C",
- "Silver" );
- final CustomerEx d = new CustomerEx( "D",
- "Silver" );
-
- final Ticket t1 = new Ticket( a );
- final Ticket t2 = new Ticket( b );
- final Ticket t3 = new Ticket( c );
- final Ticket t4 = new Ticket( d );
-
- final FactHandle fa = session.insert( a );
- final FactHandle fb = session.insert( b );
- final FactHandle fc = session.insert( c );
- final FactHandle fd = session.insert( d );
-
- final FactHandle ft1 = session.insert( t1 );
- final FactHandle ft2 = session.insert( t2 );
- final FactHandle ft3 = session.insert( t3 );
- final FactHandle ft4 = session.insert( t4 );
-
- session.fireAllRules();
-
-
-
-
- t4.setStatus( "Done" );
- session.update( ft4, t4 );
-
- try {
-
-
- System.err.println( "[[ Sleeping 5 seconds ]]" );
- Thread.sleep( 5000 );
- } catch ( final InterruptedException e ) {
- e.printStackTrace();
- }
-
- System.err.println( "[[ awake ]]" );
-
- session.dispose();
规则
- # 显示增加的门票情况
- rule "New Ticket"
- salience 10
- when
- customer : CustomerEx( )
- ticket : Ticket( customer == customer, status == "New" )
- then
- System.out.println( "New : " + ticket );
- end
-
- # 找到银卡会员,设置电影票状态
- rule "Silver Priority"
- duration 3000
- when
- customer : CustomerEx( subscription == "Silver" )
- ticket : Ticket( customer == customer, status == "New" )
- then
- ticket.setStatus( "Escalate" );
- update( ticket );
- end
-
- # 找到白金卡会员,设置电影票状态
- rule "Platinum Priority"
- when
- customer : CustomerEx( subscription == "Platinum" )
- ticket : Ticket( customer == customer, status == "New" )
- then;
- ticket.setStatus( "Escalate" );
- update( ticket );
- end
-
- # 找到金卡会员,设置电影票状态
- rule "Gold Priority"
- duration 1000
- when
- customer : CustomerEx( subscription == "Gold" )
- ticket : Ticket( customer == customer, status == "New" )
- then
- ticket.setStatus( "Escalate" );
- update( ticket );
- end
-
- # 对于被设置状态为Escalate的电影票发送邮件
- rule "Escalate"
- when
- customer : CustomerEx( )
- ticket : Ticket( customer == customer, status == "Escalate" )
- then
- sendEscalationEmail( customer, ticket );
- end
-
- # 显示状态设置为Done的电影票情况
- rule "Done"
- when
- customer : CustomerEx( )
- ticket : Ticket( customer == customer, status == "Done" )
- then
- System.out.println( "Done : " + ticket );
- end
-
- # 模拟发送邮件的函数
- function void sendEscalationEmail( CustomerEx customer, Ticket ticket ) {
- System.out.println( "Email : " + ticket );
- }
|
《 Drools4:对Ticket示例的分析 》 的评论也很精彩,欢迎您也添加评论。查看详细 >>
推荐相关文章:
精品文章翻译:现实中的规则引擎
使用 JProfiler 监控 JBoss 运行情况
JavaEye推荐
上海乐福狗信息技术有限公司:诚聘技术经理和开发工程师
免费下载IBM社区版软件--它基于开放的标准,支持广泛的开发类型,让您的开发高效自主!
京沪穗蓉四地免费注册,SOA技术高手汇聚交锋.
上海:优秀公司德比:高薪诚聘 资深Java工程师
广州:优易公司:诚聘Java工程师,开发经理
上海:尤恩斯国际集团:诚聘开发工程师
北京:优秀公司NHNChina招聘:WEB开发,系统管理,JAVA开发, DBA