org.makumba.providers
Class TransactionProvider

java.lang.Object
  extended by org.makumba.providers.TransactionProvider
All Implemented Interfaces:
SingletonHolder
Direct Known Subclasses:
HibernateTransactionProvider, MakumbaTransactionProvider

public abstract class TransactionProvider
extends Object
implements SingletonHolder

This class is a facade for creating different kinds of TransactionProviders.

Version:
$Id: TransactionProvider.java,v 1.1 28.09.2007 15:49:55 Manuel Exp $
Author:
Manuel Gay

Field Summary
static String CONNECTION_PASSWORD
           
static String CONNECTION_PREFIX
           
static String CONNECTION_URL
           
static String CONNECTION_USERNAME
           
(package private) static Map<String,TransactionProvider> providerInstances
           
 
Constructor Summary
TransactionProvider()
           
 
Method Summary
abstract  void closeDataSource(String dataSourceName)
           
 Transaction getConnectionTo(String name)
          Opens a Transaction with the specified dataSource.
protected  Transaction getConnectionTo(String name, TransactionProvider instance)
          gets a connection from the TransactionProvider needed by the dataSource.
 Transaction getConnectionToDefault()
          Opens a Transaction to the default dataSource, using getConnectionTo(String) and getDefaultDataSourceName()
abstract  CRUDOperationProvider getCRUD()
           
protected  CRUDOperationProvider getCRUD(TransactionProvider instance)
          returns the right CRUD provider according to the last connection
protected abstract  CRUDOperationProvider getCRUDInternal()
           
 String getDefaultDataSourceName()
           
static TransactionProvider getInstance()
          Gives an instance of a TransactionProvider.
protected abstract  Configuration.DataSourceType getLastConnectionType()
           
abstract  String getQueryLanguage()
           
protected  String getQueryLanguage(TransactionProvider instance)
          returns the query language according to the last connection
protected abstract  String getQueryLanguageInternal()
           
protected abstract  Transaction getTransaction(String name)
           
 void release()
           
protected abstract  void setLastConnectionType(Configuration.DataSourceType type)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

providerInstances

static final Map<String,TransactionProvider> providerInstances

CONNECTION_PREFIX

public static final String CONNECTION_PREFIX
See Also:
Constant Field Values

CONNECTION_URL

public static final String CONNECTION_URL
See Also:
Constant Field Values

CONNECTION_USERNAME

public static final String CONNECTION_USERNAME
See Also:
Constant Field Values

CONNECTION_PASSWORD

public static final String CONNECTION_PASSWORD
See Also:
Constant Field Values
Constructor Detail

TransactionProvider

public TransactionProvider()
Method Detail

getInstance

public static TransactionProvider getInstance()
Gives an instance of a TransactionProvider.


getConnectionToDefault

public Transaction getConnectionToDefault()
Opens a Transaction to the default dataSource, using getConnectionTo(String) and getDefaultDataSourceName()

Returns:
a Transaction

getConnectionTo

public Transaction getConnectionTo(String name)
Opens a Transaction with the specified dataSource.

Parameters:
name - the name of the dataSource to connect to
Returns:
a Transaction

getConnectionTo

protected Transaction getConnectionTo(String name,
                                      TransactionProvider instance)
gets a connection from the TransactionProvider needed by the dataSource.


getQueryLanguage

protected String getQueryLanguage(TransactionProvider instance)
returns the query language according to the last connection


getCRUD

protected CRUDOperationProvider getCRUD(TransactionProvider instance)
returns the right CRUD provider according to the last connection


getDefaultDataSourceName

public String getDefaultDataSourceName()

getTransaction

protected abstract Transaction getTransaction(String name)

getCRUDInternal

protected abstract CRUDOperationProvider getCRUDInternal()

getQueryLanguageInternal

protected abstract String getQueryLanguageInternal()

getLastConnectionType

protected abstract Configuration.DataSourceType getLastConnectionType()

setLastConnectionType

protected abstract void setLastConnectionType(Configuration.DataSourceType type)

getCRUD

public abstract CRUDOperationProvider getCRUD()

getQueryLanguage

public abstract String getQueryLanguage()

closeDataSource

public abstract void closeDataSource(String dataSourceName)

release

public void release()
Specified by:
release in interface SingletonHolder