weka.core.scripting
Class Jython

java.lang.Object
  extended by weka.core.scripting.Jython
All Implemented Interfaces:
Serializable, RevisionHandler

public class Jython
extends Object
implements Serializable, RevisionHandler

A helper class for Jython.

Version:
$Revision: 8034 $
Author:
fracpete (fracpete at waikato dot ac dot nz)
See Also:
Serialized Form

Field Summary
static String CLASS_PYTHONINERPRETER
          the classname of the Python interpreter
static String CLASS_PYTHONOBJECTINPUTSTREAM
          the classname of the Python ObjectInputStream
 
Constructor Summary
Jython()
          default constructor, tries to instantiate a Python Interpreter
 
Method Summary
static Object deserialize(InputStream in)
          deserializes the Python Object from the stream
 Object getInterpreter()
          returns the currently used Python Interpreter
 String getRevision()
          Returns the revision string.
static Object invoke(Object o, String methodName, Class[] paramClasses, Object[] paramValues)
          executes the specified method and returns the result, if any
 Object invoke(String methodName, Class[] paramClasses, Object[] paramValues)
          executes the specified method on the current interpreter and returns the result, if any.
static boolean isPresent()
          returns whether the Jython classes are present or not, i.e.
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.
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.
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.
static Object newInterpreter()
          initializes and returns a Python Interpreter
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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
Constructor Detail

Jython

public Jython()
default constructor, tries to instantiate a Python Interpreter

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 method
paramClasses - the classes of the parameters
paramValues - 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 file
template - 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 file
template - the template for the returned Java object
paths - 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 Interpreter
methodName - the name of the method
paramClasses - the classes of the parameters
paramValues - 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:
getRevision in interface RevisionHandler
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


Copyright © 2012 University of Waikato, Hamilton, NZ. All Rights Reserved.