Package org.apache.xml.security.utils
Class WeakObjectPool<T,E extends Throwable>
- java.lang.Object
-
- 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 aregetObject()
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 abstractcreateObject()
.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
All Methods Instance Methods Abstract Methods Concrete Methods 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.
-
-
-
Method Detail
-
createObject
protected abstract T createObject() throws E extends Throwable
Called whenever a new pool object is desired; subclasses must implement.
-
getObject
public T getObject() throws E extends Throwable
Subclasses can subclass to return a more specific type.
-
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
-
-