标签:字段 sam blog mem ogg ack 成员 test div
package com.sample import com.bean.Customer; import com.bean.Account; rule "contains" when $account : Account(); $customer : Customer(name=="七夜雪" && accounts contains $account); then System.out.println( "contains test success" ); end rule "not contains" when $account : Account(); $customer : Customer(name=="七夜雪" && accounts not contains $account); then System.out.println( "not contains test success" ); end
/** * 字段约束符,contains * @throws Exception */ @Test public void testContainsRule() throws Exception { KnowledgeBase kbase = readKnowledgeBase("Contains.drl"); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test"); Customer customer = new Customer(); customer.setName("七夜雪"); Account account1 = new Account(); account1.setNum(100); Account account2 = new Account(); account2.setNum(100); customer.getAccounts().add(account1); //not contains //customer.getAccounts().add(account2); // contains ksession.insert(customer); ksession.insert(account2); ksession.fireAllRules(); logger.close(); }
package com.sample import com.bean.Customer; import com.bean.Account; rule "Memberof" when $customer : Customer(); //当前的account是$customer.getAccounts()的一个成员 $account : Account(this memberOf $customer.getAccounts()); then System.out.println( "memberOf test success and account is " + $account.getName() ); end rule "not Memberof" when $customer : Customer(); //当前的account不是$customer.getAccounts()的一个成员 $account : Account(this not memberOf $customer.getAccounts()); then System.out.println( "not memberOf test success and account is " + $account.getName() ); end
/** * 字段约束符,memberOf * @throws Exception */ @Test public void testMemberOfRule() throws Exception { KnowledgeBase kbase = readKnowledgeBase("Members.drl"); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test"); Customer customer = new Customer(); Account account1 = new Account(); account1.setName("碧落"); Account account2 = new Account(); account2.setName("黄泉"); customer.getAccounts().add(account1); ksession.insert(customer); ksession.insert(account1); ksession.insert(account2); ksession.fireAllRules(); logger.close(); }
package com.sample import com.bean.Customer; import com.bean.Account; rule "Matchs" when $customer : Customer(name matches "qiye*"); then System.out.println( "Matchs test success and customer is " + $customer.getName() ); end rule "not Matchs" when $customer : Customer(name not matches "qiye*"); then System.out.println( "not Matchs test success and customer is " + $customer.getName() ); end
/** * 字段约束符,memberOf * @throws Exception */ @Test public void testMatcherRule() throws Exception { KnowledgeBase kbase = readKnowledgeBase("Matchs.drl"); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); Customer customer = new Customer(); customer.setName("qiyexue"); Customer customer1 = new Customer(); customer1.setName("biluo"); ksession.insert(customer); ksession.insert(customer1); ksession.fireAllRules(); }
fact对象代码:http://www.cnblogs.com/qiyexue/p/7822670.html
Drools学习笔记3—Conditions / LHS—字段约束连接&字段约束操作符
标签:字段 sam blog mem ogg ack 成员 test div
原文地址:http://www.cnblogs.com/qiyexue/p/7822850.html