Class Jython

    • 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
      • REGISTRY_JAVAACCESSIBILITY

        public static final String REGISTRY_JAVAACCESSIBILITY
        the registry key for the Java accessibility.
        See Also:
        Constant Field Values
      • m_Present

        protected boolean m_Present
        whether the Jython classes are in the Classpath.
      • m_Interpreter

        protected Object m_Interpreter
        the interpreter.
      • m_Singleton

        protected static Jython m_Singleton
        the singleton.
    • Constructor Detail

      • Jython

        protected Jython()
        default constructor, tries to instantiate a Python Interpreter.
    • Method Detail

      • checkRegistry

        protected void checkRegistry()
        Makes sure that the jython registry ($HOME/.jython) is present and contains the "python.security.respectJavaAccessibility" property.
      • 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 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 Object newInterpreter()
        initializes and returns a Python Interpreter.
        Returns:
        the interpreter or null if Jython classes not present
      • newInstance

        public 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 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 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 Object deserialize​(InputStream in)
        deserializes the Python Object from the stream.
        Parameters:
        in - the stream to use
        Returns:
        the deserialized object
      • loadScriptObject

        public Object[] loadScriptObject​(Class cls,
                                         PlaceholderFile scriptFile,
                                         JythonScript inlineScript,
                                         String scriptOptions,
                                         Variables vars)
        Loads the scripts object and sets its options.
        Parameters:
        cls - the class to instantiate
        scriptFile - the external file to load
        inlineScript - the inline script to load if external file points to a directory
        scriptOptions - the options to set
        vars - the variables to use for expanding
        Returns:
        element 0: error messsage (null if ok), element 1: script object
      • getSingleton

        public static Jython getSingleton()
        Returns the singleton.
        Returns:
        the singleton
      • 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