Class ResourceFactory
- java.lang.Object
-
- com.gargoylesoftware.base.resource.ResourceFactory
-
- Direct Known Subclasses:
JDBCResourceFactory
,PooledResourceFactory
public abstract class ResourceFactory extends java.lang.Object
A class that can create instances of specific types of resources, such as JDBC connections.- Version:
- $Revision: 1.3 $
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map
resourceManagerToResourceListMap_
-
Constructor Summary
Constructors Constructor Description ResourceFactory()
Create a factory
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private void
deregisterResource(ResourceManager resourceManager, ManagedResource resource)
ManagedResource
getResource(ResourceManager resourceManager)
Allocate a resource for the specified storeprotected abstract ManagedResource
getResourceImpl(ResourceManager resourceManager)
Subclasses will override this to perform the actual allocation of the resource.private void
registerResource(ResourceManager resourceManager, ManagedResource resource)
abstract boolean
reinitializeResourceIfPossible(ManagedResource resource)
Reinitialize the resource to a known state.void
releaseAllResources(ResourceManager resourceManager)
Release all the resources that had been allocated by the specified store.void
releaseResource(ResourceManager resourceManager, ManagedResource resource)
Release the specified resource.protected abstract void
releaseResourceImpl(ResourceManager resourceManager, ManagedResource resource)
Subclasses will override this to perform the actual release of the resource.
-
-
-
Method Detail
-
getResource
public final ManagedResource getResource(ResourceManager resourceManager) throws ResourceException
Allocate a resource for the specified store- Parameters:
resourceManager
- The object that is managing the resource allocation- Returns:
- The new resource
- Throws:
ResourceException
- If an error occurs
-
releaseResource
public final void releaseResource(ResourceManager resourceManager, ManagedResource resource) throws ResourceException
Release the specified resource. It must have been allocated by the specified store- Parameters:
resource
- The resource that we are releasingresourceManager
- The object that is managing the resource allocation- Throws:
ResourceException
- If an error occurs
-
releaseAllResources
public void releaseAllResources(ResourceManager resourceManager) throws ResourceException
Release all the resources that had been allocated by the specified store.- Parameters:
resourceManager
- The object that is managing the resource allocation- Throws:
ResourceException
- If an error occurs
-
reinitializeResourceIfPossible
public abstract boolean reinitializeResourceIfPossible(ManagedResource resource)
Reinitialize the resource to a known state. This is required for resource pooling as all resources being returned from a pool must have been initialized to a known state.- Parameters:
resource
- the resource to reinitialize- Returns:
- true if the resource was successfully reinitialized
-
getResourceImpl
protected abstract ManagedResource getResourceImpl(ResourceManager resourceManager) throws java.lang.Exception
Subclasses will override this to perform the actual allocation of the resource.- Parameters:
resourceManager
- The object that is managing the resource allocation- Returns:
- The new resource
- Throws:
java.lang.Exception
- If an error occurs
-
releaseResourceImpl
protected abstract void releaseResourceImpl(ResourceManager resourceManager, ManagedResource resource) throws java.lang.Exception
Subclasses will override this to perform the actual release of the resource.- Parameters:
resource
- The resource to releaseresourceManager
- The object that is managing the resource allocation- Throws:
java.lang.Exception
- If an error occurs
-
registerResource
private void registerResource(ResourceManager resourceManager, ManagedResource resource)
-
deregisterResource
private void deregisterResource(ResourceManager resourceManager, ManagedResource resource) throws ResourceException
- Throws:
ResourceException
-
-