package study.java.drools.integral;
import java.util.Collection;
import java.util.Iterator;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderErrors;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.definition.KnowledgePackage;
import org.drools.io.impl.ClassPathResource;
import org.drools.runtime.StatefulKnowledgeSession;
import study.java.drools.apiTest.KnowledgeBuilderTest;
public class IntegralEngine {
public static void main(String[] args) {
// 设置时间格式
System.setProperty("drools.dateformat", "yyyy-MM-dd HH:mm:ss");
KnowledgeBuilder builder = KnowledgeBuilderFactory
.newKnowledgeBuilder();
builder.add(new ClassPathResource("addpoint.drl",
KnowledgeBuilderTest.class), ResourceType.DRL);
builder.add(new ClassPathResource("subtractpoint.drl",
KnowledgeBuilderTest.class), ResourceType.DRL);
// 打印编译错误日志
if (builder.hasErrors()) {
System.out.println("规则中存在错误,错误消息如下");
KnowledgeBuilderErrors kbuidlerErrors = builder.getErrors();
for (Iterator iter = kbuidlerErrors.iterator(); iter.hasNext();) {
System.out.println(iter.next());
}
}
// 产生规则包的集合
Collection<KnowledgePackage> knowledgePackage = builder
.getKnowledgePackages();
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
// 将KnowledgePackage集合添加到KnowledgeBase当中
kbase.addKnowledgePackages(knowledgePackage);
StatefulKnowledgeSession statefulKSession = kbase
.newStatefulKnowledgeSession();
IntegralBean bean = new IntegralBean();
bean.setUserName("hello kity");
bean.setBackMondy(100d);
bean.setBuyMoney(500d);
bean.setBackNums(1);
bean.setBuyNums(5);
bean.setBillThisMonth(5);
bean.setBirthDay(true);
bean.setPoint(20l);
// 插入�?��fact对象
statefulKSession.insert(bean);
// statefulKSession.insert(bean1);
statefulKSession.fireAllRules();
System.out.println(bean.getPoint()+"================");
statefulKSession.dispose();
}
}