001package org.kuali.ole.select.executor; 002 003import org.kuali.ole.OLEConstants; 004import org.kuali.rice.kew.engine.RouteContext; 005import org.kuali.rice.kew.framework.support.krms.RulesEngineExecutor; 006import org.kuali.rice.krms.api.engine.*; 007 008import java.util.HashMap; 009import java.util.Map; 010 011/** 012 * Created with IntelliJ IDEA. 013 * User: juliyamonicas 014 * Date: 8/20/13 015 * Time: 1:22 PM 016 * To change this template use File | Settings | File Templates. 017 */ 018public class OLEEResourceRulesEngineExecutor implements RulesEngineExecutor { 019 private static final String CONTEXT_NAMESPACE_CODE = OLEConstants.OLE_NAMESPACE; 020 private static final String CONTEXT_NAME = "EResource Approval"; 021 private static final String EVENT_NAME = "EResource Approval"; 022 023 @Override 024 public EngineResults execute(RouteContext routeContext, Engine engine) { 025 026 ExecutionOptions executionOptions = new ExecutionOptions(); 027 executionOptions.setFlag(ExecutionFlag.LOG_EXECUTION, true); 028 Map<String, String> contextQualifiers = new HashMap<String, String>(); 029 contextQualifiers.put("namespaceCode", CONTEXT_NAMESPACE_CODE); 030 contextQualifiers.put("name", "OLE-CONTEXT"); 031 Facts.Builder factsBuilder = Facts.Builder.create(); 032 SelectionCriteria sectionCriteria = SelectionCriteria.createCriteria(null, contextQualifiers, 033 getAgendaContext(CONTEXT_NAME)); 034 //return engine.execute(sectionCriteria, Facts.EMPTY_FACTS, null); 035 factsBuilder.addFact("eresourceApproval", "true"); 036 return engine.execute(sectionCriteria, factsBuilder.build(), executionOptions); 037 } 038 039 /** 040 * This method returns AgendaContext using agendaName.. 041 * 042 * @param agendaName 043 * @return Map 044 */ 045 protected Map<String, String> getAgendaContext(String agendaName) { 046 Map<String, String> selector = new HashMap<String, String>(); 047 selector.put(OLEConstants.NAME, agendaName); 048 return selector; 049 } 050}