org.teiid.jdbc
Class ConnectionImpl

java.lang.Object
  extended by org.teiid.jdbc.WrapperImpl
      extended by org.teiid.jdbc.ConnectionImpl
All Implemented Interfaces:
java.sql.Connection, java.sql.Wrapper, TeiidConnection

public class ConnectionImpl
extends WrapperImpl
implements TeiidConnection

Teiid's Connection implementation.


Field Summary
static int DEFAULT_ISOLATION
           
protected  java.util.Properties propInfo
           
protected  ServerConnection serverConn
           
 
Fields inherited from interface java.sql.Connection
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
 
Constructor Summary
ConnectionImpl(ServerConnection serverConn, java.util.Properties info, java.lang.String url)
           
 
Method Summary
 void changeUser(java.lang.String userName, java.lang.String newPassword)
          Re-authenticate with the given username and password.
 void clearWarnings()
           
 void close()
           
 void commit()
          This method makes any changes involved in a transaction permanent and releases any locks held by the connection object.
protected  void commitTransaction(XidImpl arg0, boolean arg1)
           
 java.sql.Array createArrayOf(java.lang.String typeName, java.lang.Object[] elements)
           
 java.sql.Blob createBlob()
           
 java.sql.Clob createClob()
           
 java.sql.NClob createNClob()
           
 java.sql.SQLXML createSQLXML()
           
 java.sql.Statement createStatement()
           
 java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency)
          Creates a Statement object that will produce ResultSet objects of the type resultSetType and concurrency level resultSetConcurrency.
 java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
           
 java.sql.Struct createStruct(java.lang.String typeName, java.lang.Object[] attributes)
           
protected  void endTransaction(XidImpl arg0, int arg1)
           
protected  void forgetTransaction(XidImpl arg0)
           
 java.util.Collection<Annotation> getAnnotations()
           
 boolean getAutoCommit()
           
 java.lang.String getCatalog()
           
 java.util.Properties getClientInfo()
           
 java.lang.String getClientInfo(java.lang.String name)
           
 java.lang.String getConnectionId()
          Connection identifier of this connection
 PlanNode getCurrentPlanDescription()
           
 java.lang.String getDatabaseName()
          Get the database name that this connection is representing
 java.lang.String getDebugLog()
           
protected  java.util.Properties getExecutionProperties()
           
 int getHoldability()
          Retrieves the current holdability of ResultSet objects created using this Connection object.
 DatabaseMetaDataImpl getMetaData()
           
 int getTransactionIsolation()
           
protected  XidImpl getTransactionXid()
           
 java.util.Map getTypeMap()
          Retreives the type map associated with this Connection object.
 int getVDBVersion()
           
 java.sql.SQLWarning getWarnings()
          This method will return the first warning reported by calls on this connection, or null if none exist.
 boolean isClosed()
          This method will return whether this connection is closed or not.
 boolean isReadOnly()
           
 boolean isSameProcess(ConnectionImpl conn)
           
 boolean isValid(int timeout)
           
 java.lang.String nativeSQL(java.lang.String sql)
           
 java.sql.CallableStatement prepareCall(java.lang.String sql)
          Creates a CallableStatement object that contains sql and that will produce ResultSet objects that are non-scrollable and non-updatable.
 java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency)
          Creates a CallableStatement object that contains a sql and that will produce ResultSet objects of the type resultSetType and with a concurrency level of resultSetConcurrency.
 java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
           
 PreparedStatementImpl prepareStatement(java.lang.String sql)
           
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, int autoGeneratedKeys)
           
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, int[] columnIndexes)
           
 PreparedStatementImpl prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency)
          Creates a PreparedStatement object that contains a sql and that will produce ResultSet objects of the type resultSetType and with a concurrency level of resultSetConcurrency.
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
           
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, java.lang.String[] columnNames)
           
protected  int prepareTransaction(XidImpl arg0)
           
protected  javax.transaction.xa.Xid[] recoverTransaction(int arg0)
           
 void recycleConnection()
           
 void releaseSavepoint(java.sql.Savepoint savepoint)
           
 void rollback()
           
 void rollback(boolean startTxn)
          Rollback the current local transaction
 void rollback(java.sql.Savepoint savepoint)
           
protected  void rollbackTransaction(XidImpl arg0)
           
 void setAnnotations(java.util.Collection<Annotation> annotations)
           
 void setAutoCommit(boolean autoCommit)
           
 void setCatalog(java.lang.String catalog)
          Teiid does not allow setting a catalog through a connection.
 void setClientInfo(java.util.Properties properties)
           
 void setClientInfo(java.lang.String name, java.lang.String value)
           
 void setCurrentPlanDescription(PlanNode currentPlanDescription)
           
 void setDebugLog(java.lang.String debugLog)
           
 void setHoldability(int holdability)
           
 void setReadOnly(boolean readOnly)
           
 java.sql.Savepoint setSavepoint()
           
 java.sql.Savepoint setSavepoint(java.lang.String name)
           
 void setTransactionIsolation(int level)
           
 void setTypeMap(java.util.Map<java.lang.String,java.lang.Class<?>> map)
           
protected  void startTransaction(XidImpl arg0, int arg1, int timeout)
           
 
Methods inherited from class org.teiid.jdbc.WrapperImpl
isWrapperFor, unwrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
 

Field Detail

DEFAULT_ISOLATION

public static final int DEFAULT_ISOLATION
See Also:
Constant Field Values

propInfo

protected java.util.Properties propInfo

serverConn

protected ServerConnection serverConn
Constructor Detail

ConnectionImpl

public ConnectionImpl(ServerConnection serverConn,
                      java.util.Properties info,
                      java.lang.String url)
Method Detail

getAnnotations

public java.util.Collection<Annotation> getAnnotations()

setAnnotations

public void setAnnotations(java.util.Collection<Annotation> annotations)

getDebugLog

public java.lang.String getDebugLog()

setDebugLog

public void setDebugLog(java.lang.String debugLog)

getCurrentPlanDescription

public PlanNode getCurrentPlanDescription()

setCurrentPlanDescription

public void setCurrentPlanDescription(PlanNode currentPlanDescription)

getExecutionProperties

protected java.util.Properties getExecutionProperties()

getConnectionId

public java.lang.String getConnectionId()
Connection identifier of this connection

Returns:
identifier
Throws:
java.sql.SQLException

clearWarnings

public void clearWarnings()
                   throws java.sql.SQLException
Specified by:
clearWarnings in interface java.sql.Connection
Throws:
java.sql.SQLException

close

public void close()
           throws java.sql.SQLException
Specified by:
close in interface java.sql.Connection
Throws:
java.sql.SQLException

commit

public void commit()
            throws java.sql.SQLException

This method makes any changes involved in a transaction permanent and releases any locks held by the connection object. This is only used when auto-commit is set to false.

Specified by:
commit in interface java.sql.Connection
Throws:
java.sql.SQLException - if the transaction had been rolled back or marked to roll back.

createStatement

public java.sql.Statement createStatement()
                                   throws java.sql.SQLException
Specified by:
createStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

createStatement

public java.sql.Statement createStatement(int resultSetType,
                                          int resultSetConcurrency)
                                   throws java.sql.SQLException

Creates a Statement object that will produce ResultSet objects of the type resultSetType and concurrency level resultSetConcurrency.

Specified by:
createStatement in interface java.sql.Connection
Parameters:
intvalue - indicating the ResultSet's type
intValue - indicating the ResultSet's concurrency
Returns:
Statement object.
Throws:
java.sql.SQLException

getAutoCommit

public boolean getAutoCommit()
                      throws java.sql.SQLException
Specified by:
getAutoCommit in interface java.sql.Connection
Throws:
java.sql.SQLException

getCatalog

public java.lang.String getCatalog()
                            throws java.sql.SQLException
Specified by:
getCatalog in interface java.sql.Connection
Throws:
java.sql.SQLException

getVDBVersion

public int getVDBVersion()
                  throws java.sql.SQLException
Throws:
java.sql.SQLException

getMetaData

public DatabaseMetaDataImpl getMetaData()
                                 throws java.sql.SQLException
Specified by:
getMetaData in interface java.sql.Connection
Throws:
java.sql.SQLException

getDatabaseName

public java.lang.String getDatabaseName()
Get the database name that this connection is representing

Returns:
String name of the database

getHoldability

public int getHoldability()
                   throws java.sql.SQLException
Retrieves the current holdability of ResultSet objects created using this Connection object.

Specified by:
getHoldability in interface java.sql.Connection
Parameters:
holdability - int indicating the holdability
Returns:
int holdability
Throws:
java.sql.SQLException

getTransactionIsolation

public int getTransactionIsolation()
                            throws java.sql.SQLException
Specified by:
getTransactionIsolation in interface java.sql.Connection
Throws:
java.sql.SQLException

getTypeMap

public java.util.Map getTypeMap()
                         throws java.sql.SQLException
Retreives the type map associated with this Connection object. The type map contains entries for undefined types. This method always returns an empty map since it is not possible to add entries to this type map

Specified by:
getTypeMap in interface java.sql.Connection
Returns:
map containing undefined types(empty)
Throws:
SQLException, - should never occur
java.sql.SQLException

getWarnings

public java.sql.SQLWarning getWarnings()
                                throws java.sql.SQLException

This method will return the first warning reported by calls on this connection, or null if none exist.

Specified by:
getWarnings in interface java.sql.Connection
Returns:
A SQLWarning object if there are any warnings.
Throws:
SQLException, - should never occur
java.sql.SQLException

isClosed

public boolean isClosed()
                 throws java.sql.SQLException

This method will return whether this connection is closed or not.

Specified by:
isClosed in interface java.sql.Connection
Returns:
booleanvalue indicating if the connection is closed
Throws:
SQLException, - should never occur
java.sql.SQLException

isReadOnly

public boolean isReadOnly()
                   throws java.sql.SQLException
Specified by:
isReadOnly in interface java.sql.Connection
Throws:
java.sql.SQLException

nativeSQL

public java.lang.String nativeSQL(java.lang.String sql)
                           throws java.sql.SQLException
Specified by:
nativeSQL in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String sql)
                                       throws java.sql.SQLException

Creates a CallableStatement object that contains sql and that will produce ResultSet objects that are non-scrollable and non-updatable. A SQL stored procedure call statement is handled by creating a CallableStatement for it.

Specified by:
prepareCall in interface java.sql.Connection
Parameters:
sql - String(escape syntax) for invoking a stored procedure.
Returns:
CallableStatement object that can be used to execute the storedProcedure
Throws:
java.sql.SQLException - if there is an error creating the callable statement object

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String sql,
                                              int resultSetType,
                                              int resultSetConcurrency)
                                       throws java.sql.SQLException

Creates a CallableStatement object that contains a sql and that will produce ResultSet objects of the type resultSetType and with a concurrency level of resultSetConcurrency. A SQL stored procedure call statement is handled by creating a CallableStatement for it.

Specified by:
prepareCall in interface java.sql.Connection
Parameters:
sql - String(escape syntax) for invoking a stored procedure.
intvalue - indicating the ResultSet's type
intValue - indicating the ResultSet's concurrency
Returns:
CallableStatement object that can be used to execute the storedProcedure
Throws:
java.sql.SQLException

prepareStatement

public PreparedStatementImpl prepareStatement(java.lang.String sql)
                                       throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareStatement

public PreparedStatementImpl prepareStatement(java.lang.String sql,
                                              int resultSetType,
                                              int resultSetConcurrency)
                                       throws java.sql.SQLException

Creates a PreparedStatement object that contains a sql and that will produce ResultSet objects of the type resultSetType and with a concurrency level of resultSetConcurrency.

Specified by:
prepareStatement in interface java.sql.Connection
Parameters:
sql - string representing a prepared statement
intvalue - indicating the ResultSet's type
intValue - indicating the ResultSet's concurrency
Returns:
a PreparedStatement object
Throws:
java.sql.SQLException

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   int resultSetType,
                                                   int resultSetConcurrency,
                                                   int resultSetHoldability)
                                            throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

rollback

public void rollback()
              throws java.sql.SQLException
Specified by:
rollback in interface java.sql.Connection
Throws:
java.sql.SQLException

rollback

public void rollback(boolean startTxn)
              throws java.sql.SQLException
Rollback the current local transaction

Parameters:
startTxn -
Throws:
java.sql.SQLException

setAutoCommit

public void setAutoCommit(boolean autoCommit)
                   throws java.sql.SQLException
Specified by:
setAutoCommit in interface java.sql.Connection
Throws:
java.sql.SQLException

setCatalog

public void setCatalog(java.lang.String catalog)
                throws java.sql.SQLException

Teiid does not allow setting a catalog through a connection. This method silently ignores the request as per the specification.

Specified by:
setCatalog in interface java.sql.Connection
Parameters:
The - string values which sets the catalog name on the connection.
Throws:
java.sql.SQLException - This should never occur.

setReadOnly

public void setReadOnly(boolean readOnly)
                 throws java.sql.SQLException
Specified by:
setReadOnly in interface java.sql.Connection
Parameters:
A - boolean value specifying whether the connection is readonly.
Throws:
throws - SQLException.
java.sql.SQLException

commitTransaction

protected void commitTransaction(XidImpl arg0,
                                 boolean arg1)
                          throws java.sql.SQLException
Throws:
java.sql.SQLException

endTransaction

protected void endTransaction(XidImpl arg0,
                              int arg1)
                       throws java.sql.SQLException
Throws:
java.sql.SQLException

forgetTransaction

protected void forgetTransaction(XidImpl arg0)
                          throws java.sql.SQLException
Throws:
java.sql.SQLException

prepareTransaction

protected int prepareTransaction(XidImpl arg0)
                          throws java.sql.SQLException
Throws:
java.sql.SQLException

recoverTransaction

protected javax.transaction.xa.Xid[] recoverTransaction(int arg0)
                                                 throws java.sql.SQLException
Throws:
java.sql.SQLException

rollbackTransaction

protected void rollbackTransaction(XidImpl arg0)
                            throws java.sql.SQLException
Throws:
java.sql.SQLException

startTransaction

protected void startTransaction(XidImpl arg0,
                                int arg1,
                                int timeout)
                         throws java.sql.SQLException
Throws:
java.sql.SQLException

getTransactionXid

protected XidImpl getTransactionXid()

isValid

public boolean isValid(int timeout)
                throws java.sql.SQLException
Specified by:
isValid in interface java.sql.Connection
Throws:
java.sql.SQLException

recycleConnection

public void recycleConnection()

isSameProcess

public boolean isSameProcess(ConnectionImpl conn)
                      throws CommunicationException
Throws:
CommunicationException

setClientInfo

public void setClientInfo(java.util.Properties properties)
                   throws java.sql.SQLClientInfoException
Specified by:
setClientInfo in interface java.sql.Connection
Throws:
java.sql.SQLClientInfoException

setClientInfo

public void setClientInfo(java.lang.String name,
                          java.lang.String value)
                   throws java.sql.SQLClientInfoException
Specified by:
setClientInfo in interface java.sql.Connection
Throws:
java.sql.SQLClientInfoException

getClientInfo

public java.util.Properties getClientInfo()
                                   throws java.sql.SQLException
Specified by:
getClientInfo in interface java.sql.Connection
Throws:
java.sql.SQLException

getClientInfo

public java.lang.String getClientInfo(java.lang.String name)
                               throws java.sql.SQLException
Specified by:
getClientInfo in interface java.sql.Connection
Throws:
java.sql.SQLException

createArrayOf

public java.sql.Array createArrayOf(java.lang.String typeName,
                                    java.lang.Object[] elements)
                             throws java.sql.SQLException
Specified by:
createArrayOf in interface java.sql.Connection
Throws:
java.sql.SQLException

createBlob

public java.sql.Blob createBlob()
                         throws java.sql.SQLException
Specified by:
createBlob in interface java.sql.Connection
Throws:
java.sql.SQLException

createClob

public java.sql.Clob createClob()
                         throws java.sql.SQLException
Specified by:
createClob in interface java.sql.Connection
Throws:
java.sql.SQLException

createNClob

public java.sql.NClob createNClob()
                           throws java.sql.SQLException
Specified by:
createNClob in interface java.sql.Connection
Throws:
java.sql.SQLException

createSQLXML

public java.sql.SQLXML createSQLXML()
                             throws java.sql.SQLException
Specified by:
createSQLXML in interface java.sql.Connection
Throws:
java.sql.SQLException

createStatement

public java.sql.Statement createStatement(int resultSetType,
                                          int resultSetConcurrency,
                                          int resultSetHoldability)
                                   throws java.sql.SQLException
Specified by:
createStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

createStruct

public java.sql.Struct createStruct(java.lang.String typeName,
                                    java.lang.Object[] attributes)
                             throws java.sql.SQLException
Specified by:
createStruct in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String sql,
                                              int resultSetType,
                                              int resultSetConcurrency,
                                              int resultSetHoldability)
                                       throws java.sql.SQLException
Specified by:
prepareCall in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   int autoGeneratedKeys)
                                            throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   int[] columnIndexes)
                                            throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   java.lang.String[] columnNames)
                                            throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

releaseSavepoint

public void releaseSavepoint(java.sql.Savepoint savepoint)
                      throws java.sql.SQLException
Specified by:
releaseSavepoint in interface java.sql.Connection
Throws:
java.sql.SQLException

rollback

public void rollback(java.sql.Savepoint savepoint)
              throws java.sql.SQLException
Specified by:
rollback in interface java.sql.Connection
Throws:
java.sql.SQLException

setHoldability

public void setHoldability(int holdability)
                    throws java.sql.SQLException
Specified by:
setHoldability in interface java.sql.Connection
Throws:
java.sql.SQLException

setSavepoint

public java.sql.Savepoint setSavepoint()
                                throws java.sql.SQLException
Specified by:
setSavepoint in interface java.sql.Connection
Throws:
java.sql.SQLException

setSavepoint

public java.sql.Savepoint setSavepoint(java.lang.String name)
                                throws java.sql.SQLException
Specified by:
setSavepoint in interface java.sql.Connection
Throws:
java.sql.SQLException

setTransactionIsolation

public void setTransactionIsolation(int level)
                             throws java.sql.SQLException
Specified by:
setTransactionIsolation in interface java.sql.Connection
Throws:
java.sql.SQLException

setTypeMap

public void setTypeMap(java.util.Map<java.lang.String,java.lang.Class<?>> map)
                throws java.sql.SQLException
Specified by:
setTypeMap in interface java.sql.Connection
Throws:
java.sql.SQLException

changeUser

public void changeUser(java.lang.String userName,
                       java.lang.String newPassword)
                throws java.sql.SQLException
Description copied from interface: TeiidConnection
Re-authenticate with the given username and password. If the re-authentication fails the connection will remain under the current user.

Specified by:
changeUser in interface TeiidConnection
Parameters:
userName - the username to authenticate with
newPassword - the password to authenticate with
Throws:
java.sql.SQLException


Copyright © 2011. All Rights Reserved.