org.springframework.jdbc.datasource
Class DelegatingDataSource

java.lang.Object
  extended by org.springframework.jdbc.datasource.DelegatingDataSource
All Implemented Interfaces:
Wrapper, CommonDataSource, DataSource, InitializingBean
Direct Known Subclasses:
LazyConnectionDataSourceProxy, TransactionAwareDataSourceProxy, UserCredentialsDataSourceAdapter

public class DelegatingDataSource
extends Object
implements DataSource, InitializingBean

JDBC DataSource implementation that delegates all calls to a given target DataSource.

This class is meant to be subclassed, with subclasses overriding only those methods (such as getConnection()) that should not simply delegate to the target DataSource.

Since:
1.1
Author:
Juergen Hoeller
See Also:
getConnection()

Constructor Summary
DelegatingDataSource()
          Create a new DelegatingDataSource.
DelegatingDataSource(DataSource targetDataSource)
          Create a new DelegatingDataSource.
 
Method Summary
 void afterPropertiesSet()
          Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
 Connection getConnection()
           
 Connection getConnection(String username, String password)
           
 int getLoginTimeout()
           
 PrintWriter getLogWriter()
           
 DataSource getTargetDataSource()
          Return the target DataSource that this DataSource should delegate to.
 boolean isWrapperFor(Class<?> iface)
           
 void setLoginTimeout(int seconds)
           
 void setLogWriter(PrintWriter out)
           
 void setTargetDataSource(DataSource targetDataSource)
          Set the target DataSource that this DataSource should delegate to.
<T> T
unwrap(Class<T> iface)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DelegatingDataSource

public DelegatingDataSource()
Create a new DelegatingDataSource.

See Also:
setTargetDataSource(javax.sql.DataSource)

DelegatingDataSource

public DelegatingDataSource(DataSource targetDataSource)
Create a new DelegatingDataSource.

Parameters:
targetDataSource - the target DataSource
Method Detail

setTargetDataSource

public void setTargetDataSource(DataSource targetDataSource)
Set the target DataSource that this DataSource should delegate to.


getTargetDataSource

public DataSource getTargetDataSource()
Return the target DataSource that this DataSource should delegate to.


afterPropertiesSet

public void afterPropertiesSet()
Description copied from interface: InitializingBean
Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).

This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.

Specified by:
afterPropertiesSet in interface InitializingBean

getConnection

public Connection getConnection()
                         throws SQLException
Specified by:
getConnection in interface DataSource
Throws:
SQLException

getConnection

public Connection getConnection(String username,
                                String password)
                         throws SQLException
Specified by:
getConnection in interface DataSource
Throws:
SQLException

getLogWriter

public PrintWriter getLogWriter()
                         throws SQLException
Specified by:
getLogWriter in interface CommonDataSource
Throws:
SQLException

setLogWriter

public void setLogWriter(PrintWriter out)
                  throws SQLException
Specified by:
setLogWriter in interface CommonDataSource
Throws:
SQLException

getLoginTimeout

public int getLoginTimeout()
                    throws SQLException
Specified by:
getLoginTimeout in interface CommonDataSource
Throws:
SQLException

setLoginTimeout

public void setLoginTimeout(int seconds)
                     throws SQLException
Specified by:
setLoginTimeout in interface CommonDataSource
Throws:
SQLException

unwrap

public <T> T unwrap(Class<T> iface)
         throws SQLException
Specified by:
unwrap in interface Wrapper
Throws:
SQLException

isWrapperFor

public boolean isWrapperFor(Class<?> iface)
                     throws SQLException
Specified by:
isWrapperFor in interface Wrapper
Throws:
SQLException