org.apache.openjpa.lib.jdbc
Class DelegatingDataSource

java.lang.Object
  extended by org.apache.openjpa.lib.jdbc.DelegatingDataSource
All Implemented Interfaces:
java.sql.Wrapper, javax.sql.CommonDataSource, javax.sql.DataSource, Closeable
Direct Known Subclasses:
DataSourceFactory.DefaultsDataSource, DecoratingDataSource

public abstract class DelegatingDataSource
extends java.lang.Object
implements javax.sql.DataSource, Closeable

Wrapper around an existing data source. Subclasses can override the methods whose behavior they mean to change. The equals and hashCode methods pass through to the base underlying data store.

Author:
Abe White

Constructor Summary
DelegatingDataSource(javax.sql.DataSource ds)
          Constructor.
 
Method Summary
protected  void appendInfo(java.lang.StringBuffer buf)
           
 void close()
           
protected abstract  void enforceAbstract()
          Marker to enforce that subclasses of this class are abstract.
 boolean equals(java.lang.Object other)
           
 java.sql.Connection getConnection()
           
 java.sql.Connection getConnection(java.lang.String user, java.lang.String pass)
           
 javax.sql.DataSource getDelegate()
          Return the wrapped data source.
 javax.sql.DataSource getInnermostDelegate()
          Return the inner-most wrapped delegate.
 int getLoginTimeout()
           
 java.io.PrintWriter getLogWriter()
           
 int hashCode()
           
 boolean isWrapperFor(java.lang.Class iface)
           
static DelegatingDataSource newInstance(javax.sql.DataSource ds)
          Constructor for the concrete implementation of this abstract class.
 void setLoginTimeout(int timeout)
           
 void setLogWriter(java.io.PrintWriter out)
           
 java.lang.String toString()
           
 java.lang.Object unwrap(java.lang.Class iface)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DelegatingDataSource

public DelegatingDataSource(javax.sql.DataSource ds)
Constructor. Supply wrapped data source.

Method Detail

newInstance

public static DelegatingDataSource newInstance(javax.sql.DataSource ds)
Constructor for the concrete implementation of this abstract class.


enforceAbstract

protected abstract void enforceAbstract()
Marker to enforce that subclasses of this class are abstract.


getDelegate

public javax.sql.DataSource getDelegate()
Return the wrapped data source.


getInnermostDelegate

public javax.sql.DataSource getInnermostDelegate()
Return the inner-most wrapped delegate.


hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

equals

public boolean equals(java.lang.Object other)
Overrides:
equals in class java.lang.Object

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

appendInfo

protected void appendInfo(java.lang.StringBuffer buf)

getLogWriter

public java.io.PrintWriter getLogWriter()
                                 throws java.sql.SQLException
Specified by:
getLogWriter in interface javax.sql.CommonDataSource
Throws:
java.sql.SQLException

setLogWriter

public void setLogWriter(java.io.PrintWriter out)
                  throws java.sql.SQLException
Specified by:
setLogWriter in interface javax.sql.CommonDataSource
Throws:
java.sql.SQLException

getLoginTimeout

public int getLoginTimeout()
                    throws java.sql.SQLException
Specified by:
getLoginTimeout in interface javax.sql.CommonDataSource
Throws:
java.sql.SQLException

setLoginTimeout

public void setLoginTimeout(int timeout)
                     throws java.sql.SQLException
Specified by:
setLoginTimeout in interface javax.sql.CommonDataSource
Throws:
java.sql.SQLException

getConnection

public java.sql.Connection getConnection()
                                  throws java.sql.SQLException
Specified by:
getConnection in interface javax.sql.DataSource
Throws:
java.sql.SQLException

getConnection

public java.sql.Connection getConnection(java.lang.String user,
                                         java.lang.String pass)
                                  throws java.sql.SQLException
Specified by:
getConnection in interface javax.sql.DataSource
Throws:
java.sql.SQLException

close

public void close()
           throws java.lang.Exception
Specified by:
close in interface Closeable
Throws:
java.lang.Exception

isWrapperFor

public boolean isWrapperFor(java.lang.Class iface)
Specified by:
isWrapperFor in interface java.sql.Wrapper

unwrap

public java.lang.Object unwrap(java.lang.Class iface)
Specified by:
unwrap in interface java.sql.Wrapper