Package org.drools.base.mvel

Source Code of org.drools.base.mvel.MVELConsequence

package org.drools.base.mvel;

import java.io.Serializable;

import org.drools.WorkingMemory;
import org.drools.spi.Consequence;
import org.drools.spi.KnowledgeHelper;
import org.mvel.CompiledExpression;
import org.mvel.MVEL;

public class MVELConsequence
    implements
    Consequence,
    Serializable  {
    private static final long       serialVersionUID = 400L;

    private final Serializable      expr;
    private final DroolsMVELFactory factory;

    public MVELConsequence(final Serializable expr,
                           final DroolsMVELFactory factory) {
        this.expr = expr;
        this.factory = factory;
    }

    public void evaluate(final KnowledgeHelper knowledgeHelper,
                         final WorkingMemory workingMemory) throws Exception {
        this.factory.setContext( knowledgeHelper.getTuple(),
                                 knowledgeHelper,
                                 null,
                                 workingMemory,
                                 null );
        CompiledExpression compexpr = (CompiledExpression)this.expr;

        //Receive breakpoints from debugger
        MVELDebugHandler.prepare();
       
        if (MVELDebugHandler.isDebugMode()) {      
            MVEL.executeDebugger( compexpr, null, this.factory);
        } else {
            MVEL.executeExpression( compexpr, null, this.factory);
        }

    }

    public Serializable getCompExpr() {
        return expr;
    }

}
TOP

Related Classes of org.drools.base.mvel.MVELConsequence

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.