org.apache.xml.security.utils
Class WeakObjectPool<T,E extends Throwable>

java.lang.Object
  extended by org.apache.xml.security.utils.WeakObjectPool<T,E>

public abstract class WeakObjectPool<T,E extends Throwable>
extends Object

Abstract base class for pooling objects. The two public methods are getObject() and (#repool(). 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
protected WeakObjectPool()
          The lone constructor.
 
Method Summary
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 Detail

WeakObjectPool

protected WeakObjectPool()
The lone constructor.

Method Detail

createObject

protected abstract T createObject()
                           throws E extends 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 Throwable

getObject

public T getObject()
            throws E extends 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
E extends Throwable

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


Copyright © 2000–2015 The Apache Software Foundation. All rights reserved.