com.gargoylesoftware.base.objectstore

Class ObjectStore

public abstract class ObjectStore extends Object

This is a wrapper for the data layer in an application. Any code that accesses a database or some other form of data should be in a subclass of ObjectStore

Version: $Revision: 1.4 $

Author: Mike Bowler

Field Summary
ResourceManagerresourceManager_
Constructor Summary
protected ObjectStore()
Create an instance
Method Summary
protected voidassertNotNull(String fieldName, Object object)
Throw an exception if the specified object is null
Objectexecute(ObjectStoreCommand command)
Perform the actions specified by the key and return a value.
protected abstract ObjectexecuteImpl(ObjectStoreCommand command)
Override this to provide the actual processing of the object store.
protected ObjectgetResource(String name)
Return a resource from the specified factory
ResourceManagergetResourceManager()
Gets the resource manager
ResourceManagergetResourceManagerOrDie()
Return the resource manager.
protected ObjecthandleError(Error error)
Handle an exception that occured during the processing of executeImpl().
protected ObjecthandleException(Exception exception)
Handle an exception that occured during the processing of executeImpl().
protected voidreleaseResource(ManagedResource object)
Release the specified resource
voidsetResourceFactoryMap(Map inputMap)

Set the resource map.

voidsetResourceManager(ResourceManager resourceManager)
Set the resource manager

Field Detail

resourceManager_

private ResourceManager resourceManager_

Constructor Detail

ObjectStore

protected ObjectStore()
Create an instance

Method Detail

assertNotNull

protected final void assertNotNull(String fieldName, Object object)
Throw an exception if the specified object is null

Parameters: fieldName The name of the paremeter we are checking object The value of the parameter we are checking

execute

public final Object execute(ObjectStoreCommand command)
Perform the actions specified by the key and return a value. The subclasses will perform the actual work in overridden versions of executeImpl()

Parameters: command The object that tells the object store what to do

Returns: The results of the actions or null if there are no results

Throws: ObjectStoreCommandNotSupportedException If the command is not supported by this store ObjectStoreException If an error occurs during processing of this command.

See Also: executeImpl

executeImpl

protected abstract Object executeImpl(ObjectStoreCommand command)
Override this to provide the actual processing of the object store.

Parameters: command The object that tells the object store what to do

Returns: The results of the actions or null if there are no results

Throws: ObjectStoreCommandNotSupportedException If the specified command is not understood by the object store Throwable If an error occurs

See Also: execute

getResource

protected final Object getResource(String name)
Return a resource from the specified factory

Parameters: name The name of the factory

Returns: The specified resource

See Also: setResourceFactoryMap

getResourceManager

public final ResourceManager getResourceManager()
Gets the resource manager

Returns: The resource manager or null if a resource manager has not been set.

getResourceManagerOrDie

private ResourceManager getResourceManagerOrDie()
Return the resource manager. If a resource manager has not been specified then throw an exception.

Returns: The resource manager

handleError

protected Object handleError(Error error)
Handle an exception that occured during the processing of executeImpl(). Usually these exceptions will be rethrown after logging them to some error log

The default behaviour is to rethrow the error

Parameters: error The error that had been thrown

Returns: The object to return from execute in those cases where an exception is not thrown out of this method

handleException

protected Object handleException(Exception exception)
Handle an exception that occured during the processing of executeImpl(). Usually these exceptions will be rethrown after logging them to some error log

The default behaviour is to rethrow any ObjectStoreExceptions or ObjectStoreCommandNotSupportedExceptions. All other exceptions are wrapped in a new ObjectStoreException and then that wrapper is thown

Parameters: exception the exception that had been thrown

Returns: The object to return from execute in those cases where an exception is not thrown out of this method

Throws: ObjectStoreException The exception to be thrown back out of execute() ObjectStoreCommandNotSupportedException the exception to be thrown back out of execute()

releaseResource

protected final void releaseResource(ManagedResource object)
Release the specified resource

Parameters: object The resource to release

setResourceFactoryMap

public final void setResourceFactoryMap(Map inputMap)

Set the resource map. This defines what class is used when a specific resource factory is requested.

It is recommended to use setResourceManager instead

Parameters: inputMap A map containing string/class pairs.

setResourceManager

public final void setResourceManager(ResourceManager resourceManager)
Set the resource manager

Parameters: resourceManager The new resource manager