Class 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 at Py.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 call dispose() 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()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DisposablePyObjectAdapter

        public DisposablePyObjectAdapter​(org.python.core.adapter.PyObjectAdapter delegate)
    • Method Detail

      • dispose

        public void dispose()
      • canAdapt

        public boolean canAdapt​(java.lang.Object o)
        Specified by:
        canAdapt in interface org.python.core.adapter.PyObjectAdapter
      • adapt

        public org.python.core.PyObject adapt​(java.lang.Object o)
        Specified by:
        adapt in interface org.python.core.adapter.PyObjectAdapter