📄 pricingengine.java
字号:
package gov.sandia.jess.example.pricing;import gov.sandia.jess.example.pricing.model.Offer;import gov.sandia.jess.example.pricing.model.Order;import jess.*;import java.util.Iterator;public class PricingEngine { private Rete engine; private WorkingMemoryMarker marker; private Database database; public PricingEngine(Database aDatabase) throws JessException { // Create a Jess rule engine engine = new Rete(); engine.reset(); // Load the pricing rules engine.batch("pricing.clp"); // Load the catalog data into working memory database = aDatabase; engine.addAll(database.getCatalogItems()); // Mark end of catalog data for later marker = engine.mark(); } private void loadOrderData(int orderNumber) throws JessException { // Retrive the order from the database Order order = database.getOrder(orderNumber); if (order != null) { // Add the order and its contents to working memory engine.add(order); engine.add(order.getCustomer()); engine.addAll(order.getItems()); } } public Iterator run(int orderNumber) throws JessException { // Remove any previous order data, leaving only catalog data engine.resetToMark(marker); // Load data for this order loadOrderData(orderNumber); // Fire the rules that apply to this order engine.run(); // Return the list of offers created by the rules return engine.getObjects(new Filter.ByClass(Offer.class)); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -