01: // Copyright (c) Corporation for National Research Initiatives
02: package org.python.core;
03:
04: /**
05: * Common methods for all generated proxy classes.
06: *
07: * Proxies classes are created whenever a python class inherit
08: * from a java class. Instances of such a python class consists
09: * of two objects
10: * <ul>
11: * <li>An instance of the proxy class. The _getPyInstance() will
12: * return a reference to the PyInstance.
13: * <li>An instance of PyInstance. The PyInstance.javaProxy contain
14: * a reference to the proxy class instance.
15: * </ul>
16: *
17: * All proxy classes, both dynamicly generated and staticly
18: * generated by jythonc implements this interface.
19: */
20:
21: // This interface should be applicable to ANY class
22: // Choose names that are extremely unlikely to have conflicts
23: public interface PyProxy {
24: /**
25: * Associate an PyInstance with this proxy instance.
26: * This is done during construction and initialization
27: * of the proxy instance.
28: */
29: abstract public void _setPyInstance(PyInstance proxy);
30:
31: /**
32: * Return the associated PyInstance instance.
33: */
34: abstract public PyInstance _getPyInstance();
35:
36: /**
37: * Associate an system state with this proxy instance.
38: * This is done during construction and initialization
39: * of the proxy instance.
40: */
41: abstract public void _setPySystemState(PySystemState ss);
42:
43: /**
44: * Return the associated system state.
45: */
46: abstract public PySystemState _getPySystemState();
47:
48: /**
49: * Initialize the proxy instance. If the proxy have not
50: * been initialized already, this call will call the
51: * python constructor with the auplied arguments.
52: * <p>
53: * In some situations is it necesary to call the __initProxy__
54: * method from the java superclass ctor before the ctor makes
55: * call to methods that is overriden in python.
56: * <p>
57: * In most sitation the __initProxy__ is called automticly
58: * by the jython runtime.
59: */
60: abstract public void __initProxy__(Object[] args);
61: }
|