| java.lang.Object org.ofbiz.minerva.pool.PoolObjectFactory
All known Subclasses: org.ofbiz.minerva.pool.jdbc.JDBCConnectionFactory, org.ofbiz.minerva.pool.jdbc.xa.XAConnectionFactory,
PoolObjectFactory | abstract public class PoolObjectFactory (Code) | | Creates objects to be used in an object pool. This is a class instead of
an interface so you can ignore any of the methods you don't need.
author: Aaron Mulder (ammulder@alumni.princeton.edu) |
Method Summary | |
public boolean | checkValidObject(Object source, Object parameters) Tells whether a pooled object matches the specified parameters.
This is only called if the client requested an object with
specific parameters. | abstract public Object | createObject(Object parameters) Creates a new object to be stored in an object pool. | public void | deleteObject(Object pooledObject) Permanently closes an object, after it is removed from the pool. | public Object | isUniqueRequest() Decides whether a request for an object should be fulfilled by an
object checked out of the pool previously, or a new object. | public void | poolClosing(ObjectPool pool) Indicates to the factory that the pool is closing down. | public void | poolStarted(ObjectPool pool) Indicates to the factory that the pool has started up. | public Object | prepareObject(Object pooledObject) Prepares an object to be returned to the client. | public Object | returnObject(Object clientObject) Prepares an object to be returned to the pool. | public Object | translateObject(Object clientObject) If the objects supplied to the client are different than the objects in
the pool, extracts a pool object from a client object. |
checkValidObject | public boolean checkValidObject(Object source, Object parameters)(Code) | | Tells whether a pooled object matches the specified parameters.
This is only called if the client requested an object with
specific parameters. Usually all objects are "the same" so this
is not necessary.
|
createObject | abstract public Object createObject(Object parameters) throws Exception(Code) | | Creates a new object to be stored in an object pool. This is the
instance that will actually be sotred in the pool and reused. If you
want to wrap it somehow, or return instances of a different type that
refers to these, you can implement prepareObject.
See Also: PoolObjectFactory.prepareObject Parameters: parameters - Any parameters specified for creating the object.This will frequently be null, so the factory must have somereasonable default. If the factory does not use parametersto create objects, feel free to ignore this. |
deleteObject | public void deleteObject(Object pooledObject)(Code) | | Permanently closes an object, after it is removed from the pool. The
object will not be returned to the pool - after this, it is gone. This
is called when the pool shrinks, and when the pool is shut down.
|
isUniqueRequest | public Object isUniqueRequest()(Code) | | Decides whether a request for an object should be fulfilled by an
object checked out of the pool previously, or a new object. In general,
every request should generate a new object, so this should return null.
An existing object, if this request is effectively the same asa previous request and the result should be shared. nullif this is a unique request and should be fulfilled by a uniqueobject. |
poolClosing | public void poolClosing(ObjectPool pool)(Code) | | Indicates to the factory that the pool is closing down. This will be
called before all the instances are destroyed. There may be calls to
returnObject or translateObject after this, but no calls to
createObject or prepareObject (on behalf of this pool).
Parameters: pool - The pool that is closing. You may decide to allowmultiple pools you use your factory, or to restrict it to a one-to-onerelationship. throws: java.lang.IllegalArgumentException - Occurs when the pool is null. |
poolStarted | public void poolStarted(ObjectPool pool)(Code) | | Indicates to the factory that the pool has started up. This will be
called before any other methods of the factory are called (on behalf of
this pool).
Parameters: pool - The pool that is starting. You may decide to allowmultiple pools you use your factory, or to restrict it to a one-to-onerelationship. throws: java.lang.IllegalArgumentException - Occurs when the pool is null. |
prepareObject | public Object prepareObject(Object pooledObject)(Code) | | Prepares an object to be returned to the client. This may be used to
configure the object somehow, or actually return a completely different
object (so long as the original can be recovered in translateObject or
returnObject). This will be called whenever an object is returned to
the client, whether a new object or a previously pooled object.
Parameters: pooledObject - The object in the pool, as created by createObject. The object to return to the client. If different, the pooledobject must be recoverable by translateObject and returnObject. |
returnObject | public Object returnObject(Object clientObject)(Code) | | Prepares an object to be returned to the pool. Any cleanup or reset
actions should be performed here. This also has the same effect as
translateObject (only relevant if the pooled objects are different than
the objects supplied to the client).
Parameters: clientObject - The client object, as returned by prepareObject The pooled object, as originally returned by createObject, readyto be put back in the pool and reused. |
translateObject | public Object translateObject(Object clientObject)(Code) | | If the objects supplied to the client are different than the objects in
the pool, extracts a pool object from a client object. This should only
be called between prepareObject and returnObject for any given pool
object (and associated client object). However, it may be called once
after an object has been released if the garbage collector and a client
attempt to release an object at the same time. In this case, this
method may work, return null, or throw an exception and the pool will
handle it gracefully. The default implementation returns the parameter
object (assumes client and pooled objects are the same).
Parameters: clientObject - The client object, as returned by prepareObject The pooled object, as originally returned by createObject |
|
|