Class DisposablePyObjectAdapter
- java.lang.Object
-
- com.inductiveautomation.ignition.common.script.DisposablePyObjectAdapter
-
- All Implemented Interfaces:
org.python.core.adapter.PyObjectAdapter
public class DisposablePyObjectAdapter extends java.lang.Object implements org.python.core.adapter.PyObjectAdapter
This class exists so that modules can add PyObjectAdapter to the global, static extensible adapter found atPy.getAdapter()
in a way that can prevent leaking the module's classloader. The module wraps up their object adapter in this wrapper, and ensures to calldispose()
when the module is shut down. This will still cause a memory leak, albeit extremely small: one adapter object per module (re-)start. This is the only way to be able to use this part of the Jython API because they don't provide for removing adapters that have been registered.
-
-
Constructor Summary
Constructors Constructor Description DisposablePyObjectAdapter(org.python.core.adapter.PyObjectAdapter delegate)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.python.core.PyObject
adapt(java.lang.Object o)
boolean
canAdapt(java.lang.Object o)
void
dispose()
-
-
-
Method Detail
-
dispose
public void dispose()
-
canAdapt
public boolean canAdapt(java.lang.Object o)
- Specified by:
canAdapt
in interfaceorg.python.core.adapter.PyObjectAdapter
-
adapt
public org.python.core.PyObject adapt(java.lang.Object o)
- Specified by:
adapt
in interfaceorg.python.core.adapter.PyObjectAdapter
-
-