?? reteexample.java
字號:
package com.sample.rete;
/*
* This code and the accompanying presentation is licensed for use in the United States under a
* Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License
* http://creativecommons.org/licenses/by-nc-sa/3.0/us/
* All other rights reserved, copyright 2008, EBDX.COM, LLC
* Author: Lawrence Terrill, Sr. Partner, EBDX.COM, LLC, 5/1/2008
* This code supports the presentation, An Introduction to the Rete Algorithm, by Lawrence Terrill
*
*/
import java.io.InputStreamReader;
import java.io.Reader;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.compiler.PackageBuilder;
import org.drools.rule.Package;
/**
* This is a sample file to launch a rule package from a rule source file.
*/
public class ReteExample {
public static final void main(String[] args) {
try {
//load up the rulebase
Reader source = new InputStreamReader( ReteExample.class.getResourceAsStream( "ReteExample.drl" ) );
PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( source );
Package pkg = builder.getPackage();
//add the package to a rulebase (deploy the rule package).
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage( pkg );
WorkingMemory workingMemory = ruleBase.newStatefulSession();
//go !
A a_1 = new A(1, 100, "a_1");
A a_2 = new A(2, 100, "a_2");
B b_1 = new B(2, 10, 100, "b_1");
B b_2 = new B(2, 11, 100, "b_2");
B b_3 = new B(2, 11, 200, "b_3");
C c_1 = new C(10, "c_1");
D d_1 = new D(300, 11, "d_1");
E e_1 = new E(200, "e_1");
workingMemory.insert( a_1 );
workingMemory.insert( a_2 );
workingMemory.insert( b_1 );
workingMemory.insert( b_2 );
workingMemory.insert( b_3 );
workingMemory.insert( c_1 );
workingMemory.insert( d_1 );
workingMemory.insert( e_1 );
workingMemory.fireAllRules();
E e_2 = new E(100, "e_2");
System.out.println("-> Inserting object e_2 <-");
workingMemory.insert( e_2 );
workingMemory.fireAllRules();
D d_2 = new D(300, 10, "d_2");
System.out.println("-> Inserting object d_2 <-");
workingMemory.insert( d_2 );
workingMemory.fireAllRules();
} catch (Throwable t) {
t.printStackTrace();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -