tim@130: /** tim@130: * tim@130: */ tim@130: package de.intevation.gnv.geobackend.sde.datasources; tim@130: tim@130: import java.sql.CallableStatement; tim@130: import java.sql.Connection; tim@130: import java.sql.DatabaseMetaData; tim@130: import java.sql.PreparedStatement; tim@130: import java.sql.SQLException; tim@130: import java.sql.SQLWarning; tim@130: import java.sql.Savepoint; tim@130: import java.sql.Statement; tim@130: import java.util.Map; tim@130: tim@130: import org.apache.log4j.Logger; tim@130: tim@130: import com.esri.sde.sdk.client.SeConnection; tim@130: import com.esri.sde.sdk.client.SeException; tim@130: tim@130: import de.intevation.gnv.geobackend.base.connectionpool.exception.ConnectionException; tim@130: import de.intevation.gnv.geobackend.sde.connectionpool.ArcSDEPoolableObjectFactory; tim@130: tim@130: /** tim@130: * @author Tim Englich tim@130: * tim@130: */ tim@130: public class ArcSDEConnection implements Connection { tim@130: tim@130: /** tim@130: * the logger, used to log exceptions and additonaly information tim@130: */ tim@130: private static Logger log = Logger.getLogger(ArcSDEPoolableObjectFactory.class); tim@130: tim@130: private SeConnection seConnection = null; tim@130: tim@130: tim@130: tim@130: /** tim@130: * Constructor tim@130: */ tim@130: public ArcSDEConnection(String server,String port,String database,String username,String credentials) throws ConnectionException { tim@130: try { tim@130: seConnection = new SeConnection(server,port,database,username,credentials); tim@130: } catch (SeException e) { tim@130: log.error(e,e); tim@130: throw new ConnectionException(e); tim@130: } tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#clearWarnings() tim@130: */ tim@130: public void clearWarnings() throws SQLException { tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#close() tim@130: */ tim@130: public void close() throws SQLException { tim@130: try { tim@130: this.seConnection.close(); tim@130: } catch (SeException e) { tim@130: log.error(e,e); tim@130: throw new SQLException(e.getMessage()); tim@130: } tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#commit() tim@130: */ tim@130: public void commit() throws SQLException { tim@130: try{ tim@130: this.seConnection.commitTransaction(); tim@130: } catch (SeException e) { tim@130: log.error(e,e); tim@130: throw new SQLException(e.getMessage()); tim@130: } tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#createStatement() tim@130: */ tim@130: public Statement createStatement() throws SQLException { tim@130: tim@130: return new ArcSDEStatement(this); tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#createStatement(int, int) tim@130: */ tim@130: public Statement createStatement(int resultSetType, int resultSetConcurrency) tim@130: throws SQLException { tim@274: // TODO: Übergabeparameter beachten ? tim@130: return new ArcSDEStatement(this); tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#createStatement(int, int, int) tim@130: */ tim@130: public Statement createStatement(int resultSetType, tim@130: int resultSetConcurrency, int resultSetHoldability) tim@130: throws SQLException { tim@274: // TODO: Übergabeparameter beachten? tim@130: return new ArcSDEStatement(this); tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#getAutoCommit() tim@130: */ tim@130: public boolean getAutoCommit() throws SQLException { tim@130: return false; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#getCatalog() tim@130: */ tim@130: public String getCatalog() throws SQLException { tim@130: tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#getHoldability() tim@130: */ tim@130: public int getHoldability() throws SQLException { tim@130: tim@130: return 0; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#getMetaData() tim@130: */ tim@130: public DatabaseMetaData getMetaData() throws SQLException { tim@130: tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#getTransactionIsolation() tim@130: */ tim@130: public int getTransactionIsolation() throws SQLException { tim@130: tim@130: return 0; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#getTypeMap() tim@130: */ tim@130: public Map> getTypeMap() throws SQLException { tim@130: tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#getWarnings() tim@130: */ tim@130: public SQLWarning getWarnings() throws SQLException { tim@130: tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#isClosed() tim@130: */ tim@130: public boolean isClosed() throws SQLException { tim@130: try{ tim@130: return this.seConnection.isClosed(); tim@130: } catch (Exception e) { tim@130: log.error(e,e); tim@130: throw new SQLException(e.getMessage()); tim@130: } tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#isReadOnly() tim@130: */ tim@130: public boolean isReadOnly() throws SQLException { tim@130: return false; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#nativeSQL(java.lang.String) tim@130: */ tim@130: public String nativeSQL(String sql) throws SQLException { tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#prepareCall(java.lang.String) tim@130: */ tim@130: public CallableStatement prepareCall(String sql) throws SQLException { tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#prepareCall(java.lang.String, int, int) tim@130: */ tim@130: public CallableStatement prepareCall(String sql, int resultSetType, tim@130: int resultSetConcurrency) throws SQLException { tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#prepareCall(java.lang.String, int, int, int) tim@130: */ tim@130: public CallableStatement prepareCall(String sql, int resultSetType, tim@130: int resultSetConcurrency, int resultSetHoldability) tim@130: throws SQLException { tim@130: tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#prepareStatement(java.lang.String) tim@130: */ tim@130: public PreparedStatement prepareStatement(String sql) throws SQLException { tim@130: tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#prepareStatement(java.lang.String, int) tim@130: */ tim@130: public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) tim@130: throws SQLException { tim@130: tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#prepareStatement(java.lang.String, int[]) tim@130: */ tim@130: public PreparedStatement prepareStatement(String sql, int[] columnIndexes) tim@130: throws SQLException { tim@130: tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#prepareStatement(java.lang.String, java.lang.String[]) tim@130: */ tim@130: public PreparedStatement prepareStatement(String sql, String[] columnNames) tim@130: throws SQLException { tim@130: tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#prepareStatement(java.lang.String, int, int) tim@130: */ tim@130: public PreparedStatement prepareStatement(String sql, int resultSetType, tim@130: int resultSetConcurrency) throws SQLException { tim@130: tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#prepareStatement(java.lang.String, int, int, int) tim@130: */ tim@130: public PreparedStatement prepareStatement(String sql, int resultSetType, tim@130: int resultSetConcurrency, int resultSetHoldability) tim@130: throws SQLException { tim@130: tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#releaseSavepoint(java.sql.Savepoint) tim@130: */ tim@130: public void releaseSavepoint(Savepoint savepoint) throws SQLException { tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#rollback() tim@130: */ tim@130: public void rollback() throws SQLException { tim@130: try { tim@130: this.seConnection.rollbackTransaction(); tim@130: } catch (SeException e) { tim@130: log.error(e,e); tim@130: throw new SQLException(e.getMessage()); tim@130: } tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#rollback(java.sql.Savepoint) tim@130: */ tim@130: public void rollback(Savepoint savepoint) throws SQLException { tim@130: this.rollback(); tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#setAutoCommit(boolean) tim@130: */ tim@130: public void setAutoCommit(boolean autoCommit) throws SQLException { tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#setCatalog(java.lang.String) tim@130: */ tim@130: public void setCatalog(String catalog) throws SQLException { tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#setHoldability(int) tim@130: */ tim@130: public void setHoldability(int holdability) throws SQLException { tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#setReadOnly(boolean) tim@130: */ tim@130: public void setReadOnly(boolean readOnly) throws SQLException { tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#setSavepoint() tim@130: */ tim@130: public Savepoint setSavepoint() throws SQLException { tim@130: tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#setSavepoint(java.lang.String) tim@130: */ tim@130: public Savepoint setSavepoint(String name) throws SQLException { tim@130: tim@130: return null; tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#setTransactionIsolation(int) tim@130: */ tim@130: public void setTransactionIsolation(int level) throws SQLException { tim@130: } tim@130: tim@130: /** tim@130: * @see java.sql.Connection#setTypeMap(java.util.Map) tim@130: */ tim@130: public void setTypeMap(Map> map) throws SQLException { tim@130: } tim@130: tim@130: /** tim@130: * @return the seConnection tim@130: */ tim@130: public SeConnection getSeConnection() { tim@130: return seConnection; tim@130: } tim@130: tim@130: }