/*
* Copyright 2015 the original author or authors.
* @https://github.com/scouter-project/scouter
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package scouter.jdbc;
import scouter.agent.trace.TraceSQL;
import scouter.lang.step.SqlXType;
import java.sql.ResultSet;
import java.sql.SQLException;
public class WrStatement implements java.sql.Statement {
java.sql.Statement inner;
public WrStatement(java.sql.Statement inner) {
this.inner = inner;
}
final public void close() throws java.sql.SQLException {
this.inner.close();
}
final public java.sql.Connection getConnection() throws java.sql.SQLException {
return this.inner.getConnection();
}
final public boolean execute(java.lang.String a0, int[] a1) throws java.sql.SQLException {
Object stat = TraceSQL.start(this, a0, SqlXType.METHOD_EXECUTE);
try {
boolean b = this.inner.execute(a0, a1);
TraceSQL.end(stat, null, TraceSQL.toInt(b));
return b;
} catch (SQLException ex) {
TraceSQL.end(stat, ex, -3);
throw ex;
} catch (Throwable t) {
TraceSQL.end(stat, t, -3);
throw new SQLException(t);
}
}
final public boolean execute(java.lang.String a0, java.lang.String[] a1) throws java.sql.SQLException {
Object stat = TraceSQL.start(this, a0, SqlXType.METHOD_EXECUTE);
try {
boolean b = this.inner.execute(a0, a1);
TraceSQL.end(stat, null,TraceSQL.toInt(b));
return b;
} catch (SQLException ex) {
TraceSQL.end(stat, ex, -3);
throw ex;
} catch (Throwable t) {
TraceSQL.end(stat, t, -3);
throw new SQLException(t);
}
}
final public boolean execute(java.lang.String a0, int a1) throws java.sql.SQLException {
Object stat = TraceSQL.start(this, a0, SqlXType.METHOD_EXECUTE);
try {
boolean b = this.inner.execute(a0, a1);
TraceSQL.end(stat, null, TraceSQL.toInt(b));
return b;
} catch (SQLException ex) {
TraceSQL.end(stat, ex, -3);
throw ex;
} catch (Throwable t) {
TraceSQL.end(stat, t, -3);
throw new SQLException(t);
}
}
final public boolean execute(java.lang.String a0) throws java.sql.SQLException {
Object stat = TraceSQL.start(this, a0, SqlXType.METHOD_EXECUTE);
try {
boolean b = this.inner.execute(a0);
TraceSQL.end(stat, null, TraceSQL.toInt(b));
return b;
} catch (SQLException ex) {
TraceSQL.end(stat, ex, 0);
throw ex;
} catch (Throwable t) {
TraceSQL.end(stat, t, 0);
throw new SQLException(t);
}
}
final public java.sql.ResultSet executeQuery(java.lang.String a0) throws java.sql.SQLException {
Object stat = TraceSQL.start(this, a0, SqlXType.METHOD_QUERY);
try {
ResultSet rs = this.inner.executeQuery(a0);
TraceSQL.end(stat, null, -1);
return new WrResultSet(rs);
} catch (SQLException ex) {
TraceSQL.end(stat, ex, -3);
throw ex;
} catch (Throwable t) {
TraceSQL.end(stat, t, -3);
throw new SQLException(t);
}
}
final public int executeUpdate(java.lang.String a0, java.lang.String[] a1) throws java.sql.SQLException {
Object stat = TraceSQL.start(this, a0, SqlXType.METHOD_UPDATE);
try {
int n = this.inner.executeUpdate(a0, a1);
TraceSQL.end(stat, null, n);
return n;
} catch (SQLException ex) {
TraceSQL.end(stat, ex, -3);
throw ex;
} catch (Throwable t) {
TraceSQL.end(stat, t, -3);
throw new SQLException(t);
}
}
final public int executeUpdate(java.lang.String a0, int a1) throws java.sql.SQLException {
Object stat = TraceSQL.start(this, a0, SqlXType.METHOD_UPDATE);
try {
int n = this.inner.executeUpdate(a0, a1);
TraceSQL.end(stat, null, n);
return n;
} catch (SQLException ex) {
TraceSQL.end(stat, ex, -3);
throw ex;
} catch (Throwable t) {
TraceSQL.end(stat, t, -3);
throw new SQLException(t);
}
}
final public int executeUpdate(java.lang.String a0) throws java.sql.SQLException {
Object stat = TraceSQL.start(this, a0, SqlXType.METHOD_UPDATE);
try {
int b = this.inner.executeUpdate(a0);
TraceSQL.end(stat, null, b);
return b;
} catch (SQLException ex) {
TraceSQL.end(stat, ex, -3);
throw ex;
} catch (Throwable t) {
TraceSQL.end(stat, t, -3);
throw new SQLException(t);
}
}
final public int executeUpdate(java.lang.String a0, int[] a1) throws java.sql.SQLException {
Object stat = TraceSQL.start(this, a0, SqlXType.METHOD_UPDATE);
try {
int b = this.inner.executeUpdate(a0, a1);
TraceSQL.end(stat, null, b);
return b;
} catch (SQLException ex) {
TraceSQL.end(stat, ex, -3);
throw ex;
} catch (Throwable t) {
TraceSQL.end(stat, t, -3);
throw new SQLException(t);
}
}
final public int getMaxFieldSize() throws java.sql.SQLException {
return this.inner.getMaxFieldSize();
}
final public void setMaxFieldSize(int a0) throws java.sql.SQLException {
this.inner.setMaxFieldSize(a0);
}
final public int getMaxRows() throws java.sql.SQLException {
return this.inner.getMaxRows();
}
final public void setMaxRows(int a0) throws java.sql.SQLException {
this.inner.setMaxRows(a0);
}
final public void setEscapeProcessing(boolean a0) throws java.sql.SQLException {
this.inner.setEscapeProcessing(a0);
}
final public int getQueryTimeout() throws java.sql.SQLException {
return this.inner.getQueryTimeout();
}
final public void setQueryTimeout(int a0) throws java.sql.SQLException {
this.inner.setQueryTimeout(a0);
}
final public void cancel() throws java.sql.SQLException {
this.inner.cancel();
}
final public java.sql.SQLWarning getWarnings() throws java.sql.SQLException {
return this.inner.getWarnings();
}
final public void clearWarnings() throws java.sql.SQLException {
this.inner.clearWarnings();
}
final public void setCursorName(java.lang.String a0) throws java.sql.SQLException {
this.inner.setCursorName(a0);
}
final public java.sql.ResultSet getResultSet() throws java.sql.SQLException {
ResultSet rs = this.inner.getResultSet();
return new WrResultSet(rs);
}
final public int getUpdateCount() throws java.sql.SQLException {
return TraceSQL.incUpdateCount(this.inner.getUpdateCount());
//return this.inner.getUpdateCount();
}
final public boolean getMoreResults(int a0) throws java.sql.SQLException {
return this.inner.getMoreResults(a0);
}
final public boolean getMoreResults() throws java.sql.SQLException {
return this.inner.getMoreResults();
}
final public void setFetchDirection(int a0) throws java.sql.SQLException {
this.inner.setFetchDirection(a0);
}
final public int getFetchDirection() throws java.sql.SQLException {
return this.inner.getFetchDirection();
}
final public void setFetchSize(int a0) throws java.sql.SQLException {
this.inner.setFetchSize(a0);
}
final public int getFetchSize() throws java.sql.SQLException {
return this.inner.getFetchSize();
}
final public int getResultSetConcurrency() throws java.sql.SQLException {
return this.inner.getResultSetConcurrency();
}
final public int getResultSetType() throws java.sql.SQLException {
return this.inner.getResultSetType();
}
final public void addBatch(java.lang.String a0) throws java.sql.SQLException {
this.inner.addBatch(a0);
}
final public void clearBatch() throws java.sql.SQLException {
this.inner.clearBatch();
}
final public int[] executeBatch() throws java.sql.SQLException {
return this.inner.executeBatch();
}
final public java.sql.ResultSet getGeneratedKeys() throws java.sql.SQLException {
return this.inner.getGeneratedKeys();
}
final public int getResultSetHoldability() throws java.sql.SQLException {
return this.inner.getResultSetHoldability();
}
final public boolean isClosed() throws java.sql.SQLException {
return this.inner.isClosed();
}
final public void setPoolable(boolean a0) throws java.sql.SQLException {
this.inner.setPoolable(a0);
}
final public boolean isPoolable() throws java.sql.SQLException {
return this.inner.isPoolable();
}
public void closeOnCompletion() throws SQLException {
// TODO Auto-generated method stub
}
public boolean isCloseOnCompletion() throws SQLException {
// TODO Auto-generated method stub
return false;
}
public <T> T unwrap(Class<T> iface) throws SQLException {
// TODO Auto-generated method stub
return null;
}
public boolean isWrapperFor(Class<?> iface) throws SQLException {
// TODO Auto-generated method stub
return false;
}
}