Class WeakObjectPool<T,​E extends java.lang.Throwable>

java.lang.Object
org.docx4j.org.apache.xml.security.utils.WeakObjectPool<T,​E>

public abstract class WeakObjectPool<T,​E extends java.lang.Throwable>
extends java.lang.Object
Abstract base class for pooling objects. The two public methods are getObject() and (repool(Object). Objects are held through weak references so even objects that are not repooled are subject to garbage collection. Subclasses must implement the abstract createObject().

Internally, the pool is stored in a java.util.concurrent.LinkedBlockingDeque instance.

  • Constructor Summary

    Constructors 
    Modifier Constructor Description
    protected WeakObjectPool()
    The lone constructor.
  • Method Summary

    Modifier and Type Method Description
    protected abstract T createObject()
    Called whenever a new pool object is desired; subclasses must implement.
    T getObject()
    Subclasses can subclass to return a more specific type.
    boolean repool​(T obj)
    Adds the given object to the pool, provided that the object was created by this pool.

    Methods inherited from class java.lang.Object

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

  • Method Details

    • createObject

      protected abstract T createObject() throws E extends java.lang.Throwable
      Called whenever a new pool object is desired; subclasses must implement.
      Returns:
      object of the type desired by the subclass
      Throws:
      parameterizable - Throwable's subclass
      E extends java.lang.Throwable
    • getObject

      public T getObject() throws E extends java.lang.Throwable
      Subclasses can subclass to return a more specific type.
      Returns:
      an object from the pool; will block until an object is available
      Throws:
      E
    • repool

      public boolean repool​(T obj)
      Adds the given object to the pool, provided that the object was created by this pool.
      Parameters:
      obj - the object to return to the pool
      Returns:
      whether the object was successfully added as available