Rev 1061 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/****/package in.shop2020.util;import in.shop2020.metamodel.definitions.RuleDefinition;import in.shop2020.metamodel.definitions.SlideDefinition;import in.shop2020.metamodel.util.ExpandedFacetSlideDefinition;import in.shop2020.metamodel.util.ExpandedSlide;import java.util.List;import org.python.core.PyList;import org.python.core.PyObject;/*** Wrapper around Jython for Information Retrieval Python scripts** @author naveen**/public class IRDataJythonWrapper extends JythonWrapper {/*** Local instance of Facet Rule Definition - Used to pick script to execute*/private ExpandedFacetSlideDefinition expandedFacetSlideDefinition = null;/*** Resets current PythonInterpreter instance*/public void reset() {super.reset();this.expandedFacetSlideDefinition = null;}/**** @param expandedFacetSlideDefinition*/public void setExpandedFacetSlideDefinition(ExpandedFacetSlideDefinition expandedFacetSlideDefinition) {this.initialize();this.expandedFacetSlideDefinition = expandedFacetSlideDefinition;this.py.set("expFacetRuleDef", expandedFacetSlideDefinition);}/**** @param itemPrice*/public void setEntityPrice(double itemPrice) {this.initialize();this.py.set("itemPrice", itemPrice);}/**** @param slideDefinition*/public void setSlideDefinition(SlideDefinition slideDefinition) {this.initialize();this.py.set("slideDef", slideDefinition);}/**** @param slide*/public void setExpandedSlide(ExpandedSlide expSlide) {this.initialize();this.py.set("expSlide", expSlide);}/*** Executes IR Data rule from ExpandedFacetSlideDefinition instance*/public void executeRule() {if(this.py == null || this.expandedFacetSlideDefinition == null) {throw new IllegalStateException("Not initialized properly");}RuleDefinition irdataRuleDef = this.expandedFacetSlideDefinition.getIrDataRuleDefinition();String pyScript = irdataRuleDef.getScript();String scriptFullPath = Utils.JYTHON_SRC_PATH + "irdatarules/" +pyScript;Utils.info("irdataRuleDef.getID()=" + irdataRuleDef.getID());Utils.info("scriptFullPath=" + scriptFullPath);this.exec(scriptFullPath);}/**** @return*/@SuppressWarnings("unchecked")public List getValues() {if(this.py == null) {throw new IllegalStateException("Exec is not called yet");}PyObject values = this.py.get("values");return (PyList)values;}}