package edu.isi.karma.cleaning; import org.python.core.PyObject; import org.python.core.PyString; import org.python.util.PythonInterpreter; import edu.isi.karma.webserver.ServletContextParameterMap; import edu.isi.karma.webserver.ServletContextParameterMap.ContextParameter; public class Interpretor { private PyObject interpreterClass; public Interpretor() { PythonInterpreter interpreter = new PythonInterpreter(); //change the sys.path String dirpathString = ServletContextParameterMap.getParameterValue(ContextParameter.PYTHON_SCRIPTS_DIRECTORY); if(dirpathString.compareTo("")==0) { dirpathString = "./src/main/scripts/Lib"; } interpreter.exec("import sys"); interpreter.exec("sys.path.append('"+dirpathString+"')"); ///Users/bowu/projects/IDCT/src/edu/isi/karma/cleaning interpreter.exec("sys.path.append('"+dirpathString+"')"); interpreter.exec("from FunctionList import *"); interpreter.exec("from Interpreter import *"); //interpreter.exec("print sys.path"); interpreterClass = interpreter.get("Interpreter"); } /** * The create method is responsible for performing the actual * coercion of the referenced python module into Java bytecode */ public InterpreterType create(String scripts) { PyObject buildingObject = interpreterClass.__call__(new PyString(scripts)); InterpreterType ele = (InterpreterType)buildingObject.__tojava__(InterpreterType.class); return ele; } public static void main(String[] args) { Interpretor it = new Interpretor(); String scripts="substr(value,indexOf(value,'START','WRD'),indexOf(value,'WRD','SYB'))+'*'+substr(value,indexOf(value,'SYB','NUM'),indexOf(value,'NUM','END'))"; String value = "Dositejeva 22"; InterpreterType worker = it.create(scripts); } }