View Javadoc

1   /**
2    * Copyright 2005-2011 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.rice.krms.api.engine;
17  
18  import java.util.Map;
19  
20  public interface Engine {
21  
22  	/**
23  	 * Initiates execution of the rules engine.
24  	 * 
25  	 * @param selectionCriteria informs the engine of the criteria to use for selection of contexts and agendas
26  	 * @param facts the facts that the rule engine can use during execution
27  	 * @param executionOptions defines various options that instruct the rules engine on how to perform it's execution
28  	 * 
29  	 * @return the results of engine execution
30  	 */
31  	EngineResults execute(SelectionCriteria selectionCriteria, Facts facts, ExecutionOptions executionOptions);
32  
33      /**
34       * Initiates execution of the rules engine.
35       *
36       * @param selectionCriteria informs the engine of the criteria to use for selection of contexts and agendas
37       * @param facts the facts that the rule engine can use during execution.  Since this signature does not pass in
38       * {@link Term}s, all terms are defined with only a name, and term parameters can not be specified.
39       * @param executionOptions defines various options that instruct the rules engine on how to perform it's execution
40       *
41       * @return the results of engine execution
42       */
43      EngineResults execute(SelectionCriteria selectionCriteria, Map<String, Object> facts, ExecutionOptions executionOptions);
44  
45  }