com.sun.xml.ws.util
Class Pool<T>

java.lang.Object
  extended by com.sun.xml.ws.util.Pool<T>
Direct Known Subclasses:
Pool.Marshaller, Pool.TubePool, Pool.Unmarshaller

public abstract class Pool<T>
extends Object

General-purpose object pool.

In many parts of the runtime, we need to pool instances of objects that are expensive to create (such as JAXB objects, StAX parsers, Tube instances.)

This class provides a default implementation of such a pool. TODO: improve the implementation


Nested Class Summary
static class Pool.Marshaller
          JAXB Marshaller pool.
static class Pool.TubePool
          Tube pool.
static class Pool.Unmarshaller
          JAXB Marshaller pool.
 
Constructor Summary
Pool()
           
 
Method Summary
protected abstract  T create()
          Creates a new instance of object.
 void recycle(T t)
          Returns an object back to the pool.
 T take()
          Gets a new object from the pool.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Pool

public Pool()
Method Detail

take

public final T take()
Gets a new object from the pool.

If no object is available in the pool, this method creates a new one.

Returns:
always non-null.

recycle

public final void recycle(T t)
Returns an object back to the pool.


create

protected abstract T create()
Creates a new instance of object.

This method is used when someone wants to take an object from an empty pool.

Also note that multiple threads may call this method concurrently.