Rev 1314 | 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.ExpandedFacetDefinition;import in.shop2020.metamodel.util.ExpandedFacetSlideDefinition;import in.shop2020.metamodel.util.ExpandedSlideDefinition;import java.util.List;import org.python.core.PyObject;import org.python.core.PyString;/*** Wrapper around Jython for Meta-data related to Information Retrieval data** @author naveen**/public class IRMetaDataJythonWrapper extends JythonWrapper {/*** Local instance of Facet Definition - Used to pick script to execute*/private ExpandedFacetDefinition expandedFacetDefinition = null;/*** Resets current PythonInterpreter instance*/public void reset() {super.reset();this.expandedFacetDefinition = null;}/**** @param expandedFacetDefinition*/public void setExpandedFacetDefinition(ExpandedFacetDefinition expandedFacetDefinition) {this.initialize();this.expandedFacetDefinition = expandedFacetDefinition;this.py.set("expFacetDef", expandedFacetDefinition);}/*** Executes IR Data rule from ExpandedFacetDefinition instance* @throws Exception*/public void executeRule() throws Exception {if(this.py == null || this.expandedFacetDefinition == null) {throw new IllegalStateException("Not initialized properly");}List<ExpandedFacetSlideDefinition> expFacetSlideDefs = expandedFacetDefinition.getExpandedFacetSlideDefinitions();for(ExpandedFacetSlideDefinition expFacetSlideDef: expFacetSlideDefs){SlideDefinition slideDef = expFacetSlideDef.getSlideDefinition();ExpandedSlideDefinition expSlideDef = new ExpandedSlideDefinition(slideDef);this.py.set("expSlideDef", expSlideDef);RuleDefinition ruleDef = expFacetSlideDef.getIrMetadataRuleDefinition();// Feature LabelsSystem.out.println(ruleDef);String pyScript = ruleDef.getScript();String scriptFullPath = Utils.JYTHON_SRC_PATH + "irmetadatarules/" + pyScript;Utils.info("ruleDef.getID()=" + ruleDef.getID());Utils.info("scriptFullPath=" + scriptFullPath);this.exec(scriptFullPath);}}/**** @return*/public String getXMLSnippet() {if(this.py == null) {throw new IllegalStateException("Exec is not called yet");}PyObject xmlsnippet = this.py.get("xmlsnippet");return ((PyString)xmlsnippet).toString();}}