org.python.core.PyProxy Maven / Gradle / Ivy
Go to download
Jython is an implementation of the high-level, dynamic, object-oriented
language Python written in 100% Pure Java, and seamlessly integrated with
the Java platform. It thus allows you to run Python on any Java platform.
// Copyright (c) Corporation for National Research Initiatives
package org.python.core;
/**
* Common methods for all generated proxy classes.
*
* Proxies classes are created whenever a python class inherit
* from a java class. Instances of such a python class consists
* of two objects
*
* - An instance of the proxy class. The _getPyInstance() will
* return a reference to the PyInstance.
*
- An instance of PyInstance. The PyInstance.javaProxy contain
* a reference to the proxy class instance.
*
*
* All proxy classes, both dynamicly generated and staticly
* generated by jythonc implements this interface.
*/
// This interface should be applicable to ANY class
// Choose names that are extremely unlikely to have conflicts
public interface PyProxy
{
/**
* Associate an PyInstance with this proxy instance.
* This is done during construction and initialization
* of the proxy instance.
*/
abstract public void _setPyInstance(PyInstance proxy);
/**
* Return the associated PyInstance instance.
*/
abstract public PyInstance _getPyInstance();
/**
* Associate an system state with this proxy instance.
* This is done during construction and initialization
* of the proxy instance.
*/
abstract public void _setPySystemState(PySystemState ss);
/**
* Return the associated system state.
*/
abstract public PySystemState _getPySystemState();
/**
* Initialize the proxy instance. If the proxy have not
* been initialized already, this call will call the
* python constructor with the auplied arguments.
*
* In some situations is it necesary to call the __initProxy__
* method from the java superclass ctor before the ctor makes
* call to methods that is overriden in python.
*
* In most sitation the __initProxy__ is called automticly
* by the jython runtime.
*/
abstract public void __initProxy__(Object[] args);
}