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: 10203 $
Author:
fracpete (fracpete at waikato dot ac dot nz)
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    the classname of the Python interpreter
    static final String
    the classname of the Python ObjectInputStream
  • Constructor Summary

    Constructors
    Constructor
    Description
    default constructor, tries to instantiate a Python Interpreter
  • Method Summary

    Modifier and Type
    Method
    Description
    static Object
    deserializes the Python Object from the stream
    returns the currently used Python Interpreter
    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
    invoke(String methodName, Class<?>[] paramClasses, Object[] paramValues)
    executes the specified method on the current interpreter and returns the result, if any.
    static boolean
    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
    initializes and returns a Python Interpreter

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • CLASS_PYTHONINERPRETER

      public static final String CLASS_PYTHONINERPRETER
      the classname of the Python interpreter
      See Also:
    • CLASS_PYTHONOBJECTINPUTSTREAM

      public static final String CLASS_PYTHONOBJECTINPUTSTREAM
      the classname of the Python ObjectInputStream
      See Also:
  • Constructor Details

    • Jython

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

    • 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