Package weka.core.scripting
Class Jython
- java.lang.Object
-
- weka.core.scripting.Jython
-
- All Implemented Interfaces:
Serializable,RevisionHandler
public class Jython extends Object implements Serializable, RevisionHandler
A helper class for Jython.- Version:
- $Revision$
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static StringCLASS_PYTHONINERPRETERthe classname of the Python interpreterstatic StringCLASS_PYTHONOBJECTINPUTSTREAMthe classname of the Python ObjectInputStream
-
Constructor Summary
Constructors Constructor Description Jython()default constructor, tries to instantiate a Python Interpreter
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Objectdeserialize(InputStream in)deserializes the Python Object from the streamObjectgetInterpreter()returns the currently used Python InterpreterStringgetRevision()Returns the revision string.static Objectinvoke(Object o, String methodName, Class<?>[] paramClasses, Object[] paramValues)executes the specified method and returns the result, if anyObjectinvoke(String methodName, Class<?>[] paramClasses, Object[] paramValues)executes the specified method on the current interpreter and returns the result, if any.static booleanisPresent()returns whether the Jython classes are present or not, i.e.static voidmain(String[] args)If no arguments are given, it just prints the presence of the Jython classes, otherwise it expects a Jython filename to execute.static ObjectnewInstance(File file, Class<?> template)loads the module and returns a new instance of it as instance of the provided Java class template.static ObjectnewInstance(File file, Class<?> template, File[] paths)loads the module and returns a new instance of it as instance of the provided Java class template.static ObjectnewInterpreter()initializes and returns a Python Interpreter
-
-
-
Field Detail
-
CLASS_PYTHONINERPRETER
public static final String CLASS_PYTHONINERPRETER
the classname of the Python interpreter- See Also:
- Constant Field Values
-
CLASS_PYTHONOBJECTINPUTSTREAM
public static final String CLASS_PYTHONOBJECTINPUTSTREAM
the classname of the Python ObjectInputStream- See Also:
- Constant Field Values
-
-
Method Detail
-
getInterpreter
public Object getInterpreter()
returns the currently used Python Interpreter- Returns:
- the interpreter, can be null
-
invoke
public Object invoke(String methodName, Class<?>[] paramClasses, Object[] paramValues)
executes the specified method on the current interpreter and returns the result, if any.- Parameters:
methodName- the name of the methodparamClasses- the classes of the parametersparamValues- the values of the parameters- Returns:
- the return value of the method, if any (in that case null)
-
isPresent
public static boolean isPresent()
returns whether the Jython classes are present or not, i.e. whether the classes are in the classpath or not- Returns:
- whether the Jython classes are available
-
newInterpreter
public static Object newInterpreter()
initializes and returns a Python Interpreter- Returns:
- the interpreter or null if Jython classes not present
-
newInstance
public static Object newInstance(File file, Class<?> template)
loads the module and returns a new instance of it as instance of the provided Java class template.- Parameters:
file- the Jython module filetemplate- the template for the returned Java object- Returns:
- the Jython object
-
newInstance
public static Object newInstance(File file, Class<?> template, File[] paths)
loads the module and returns a new instance of it as instance of the provided Java class template. The paths are added to 'sys.path' - can be used if the module depends on other Jython modules.- Parameters:
file- the Jython module filetemplate- the template for the returned Java objectpaths- additional paths to add to "sys.path"- Returns:
- the Jython object
-
invoke
public static Object invoke(Object o, String methodName, Class<?>[] paramClasses, Object[] paramValues)
executes the specified method and returns the result, if any- Parameters:
o- the object the method should be called from, e.g., a Python InterpretermethodName- the name of the methodparamClasses- the classes of the parametersparamValues- the values of the parameters- Returns:
- the return value of the method, if any (in that case null)
-
deserialize
public static Object deserialize(InputStream in)
deserializes the Python Object from the stream- Parameters:
in- the stream to use- Returns:
- the deserialized object
-
getRevision
public String getRevision()
Returns the revision string.- Specified by:
getRevisionin interfaceRevisionHandler- Returns:
- the revision
-
main
public static void main(String[] args)
If no arguments are given, it just prints the presence of the Jython classes, otherwise it expects a Jython filename to execute.- Parameters:
args- commandline arguments
-
-