Package weka.core
Class Jython
- java.lang.Object
-
- weka.core.Jython
-
- All Implemented Interfaces:
java.io.Serializable
,RevisionHandler
public class Jython extends java.lang.Object implements java.io.Serializable, RevisionHandler
A helper class for Jython.- Version:
- $Revision: 1.2 $
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CLASS_PYTHONINERPRETER
the classname of the Python interpreterstatic java.lang.String
CLASS_PYTHONOBJECTINPUTSTREAM
the 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 java.lang.Object
deserialize(java.io.InputStream in)
deserializes the Python Object from the streamjava.lang.Object
getInterpreter()
returns the currently used Python Interpreterjava.lang.String
getRevision()
Returns the revision string.static java.lang.Object
invoke(java.lang.Object o, java.lang.String methodName, java.lang.Class[] paramClasses, java.lang.Object[] paramValues)
executes the specified method and returns the result, if anyjava.lang.Object
invoke(java.lang.String methodName, java.lang.Class[] paramClasses, java.lang.Object[] paramValues)
executes the specified method on the current interpreter and returns the result, if anystatic boolean
isPresent()
returns whether the Jython classes are present or not, i.e.static void
main(java.lang.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 java.lang.Object
newInstance(java.io.File file, java.lang.Class template)
loads the module and returns a new instance of it as instance of the provided Java class template.static java.lang.Object
newInstance(java.io.File file, java.lang.Class template, java.io.File[] paths)
loads the module and returns a new instance of it as instance of the provided Java class template.static java.lang.Object
newInterpreter()
initializes and returns a Python Interpreter
-
-
-
Field Detail
-
CLASS_PYTHONINERPRETER
public static final java.lang.String CLASS_PYTHONINERPRETER
the classname of the Python interpreter- See Also:
- Constant Field Values
-
CLASS_PYTHONOBJECTINPUTSTREAM
public static final java.lang.String CLASS_PYTHONOBJECTINPUTSTREAM
the classname of the Python ObjectInputStream- See Also:
- Constant Field Values
-
-
Method Detail
-
getInterpreter
public java.lang.Object getInterpreter()
returns the currently used Python Interpreter- Returns:
- the interpreter, can be null
-
invoke
public java.lang.Object invoke(java.lang.String methodName, java.lang.Class[] paramClasses, java.lang.Object[] paramValues)
executes the specified method on the current interpreter 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)
-
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 java.lang.Object newInterpreter()
initializes and returns a Python Interpreter- Returns:
- the interpreter or null if Jython classes not present
-
newInstance
public static java.lang.Object newInstance(java.io.File file, java.lang.Class template)
loads the module and returns a new instance of it as instance of the provided Java class template.- Parameters:
filename
- the path to the Jython module, incl. filenametemplate
- the template for the returned Java object- Returns:
- the Jython object
-
newInstance
public static java.lang.Object newInstance(java.io.File file, java.lang.Class template, java.io.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:
filename
- the path to the Jython module, incl. filenametemplate
- the template for the returned Java objectpaths
- additional paths to add to "sys.path"- Returns:
- the Jython object
-
invoke
public static java.lang.Object invoke(java.lang.Object o, java.lang.String methodName, java.lang.Class[] paramClasses, java.lang.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 java.lang.Object deserialize(java.io.InputStream in)
deserializes the Python Object from the stream- Parameters:
in
- the stream to use- Returns:
- the deserialized object
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Returns:
- the revision
-
main
public static void main(java.lang.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
-
-