⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 helloworldbuilder.java

📁 rule engine drools-2.0-beta-18
💻 JAVA
字号:
package org.drools.reteoo;import org.drools.RuleBase;import org.drools.rule.Declaration;import org.drools.rule.Rule;import org.drools.rule.RuleSet;import org.drools.spi.Condition;import java.util.Iterator;import java.util.List;/** * This simple Rete builder and it create a completely unoptimised Rete, ie not * JoinNodes, but is an ideal starting point to learn more about how Rete's are * built. org.drools.reteoo should be consultated to get a greater undertanding * of optimisations */public class HelloWorldBuilder{    private final Rete      rete;    private final Rule[]    rules;    public HelloWorldBuilder(RuleSet ruleSet)    {        this.rete = new Rete( );        this.rules = ruleSet.getRules( );    }    public RuleBase buildRuleBase()    {        Declaration declaration;        Rule rule;        ParameterNode parameterNode;        for ( int i = 0; i < rules.length; i++ )        {            rule = rules[i];            for ( Iterator j = rule.getParameterDeclarations( ).iterator( ); j.hasNext( ); )            {                declaration = ( Declaration ) j.next();                parameterNode = new ParameterNode( rete.getOrCreateObjectTypeNode( declaration.getObjectType( ) ),                                                   declaration );                List conditions = rule.getConditions( );                if ( conditions.isEmpty( ) )                {                    TerminalNode terminal = new TerminalNode( parameterNode,                                                              rule );                }                else                {                    for ( int k = 0; k < conditions.size( ); k++ )                    {                        TerminalNode terminal = new TerminalNode( new ConditionNode( rule, parameterNode,                                                                                     ( Condition ) conditions.get( k ),                                                                                     k ),                                                                  rule );                    }                }            }        }        return new RuleBaseImpl( this.rete );    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -