// Path: src/main/java/com/elong/pb/newdda/client/jdbc/operation/AbstractUnsupportedOperationStatement.java
// public abstract class AbstractUnsupportedOperationStatement extends WrapperAdapter implements Statement {
// 
//     @Override
//     public final int getMaxFieldSize() throws SQLException {
//         throw new SQLFeatureNotSupportedException("getMaxFieldSize");
//     }
// 
//     @Override
//     public final void setMaxFieldSize(final int max) throws SQLException {
//         throw new SQLFeatureNotSupportedException("setMaxFieldSize");
//     }
// 
//     @Override
//     public final int getMaxRows() throws SQLException {
//         throw new SQLFeatureNotSupportedException("getMaxRows");
//     }
// 
//     @Override
//     public final void setMaxRows(final int max) throws SQLException {
//         throw new SQLFeatureNotSupportedException("setMaxRows");
//     }
// 
//     @Override
//     public final int getQueryTimeout() throws SQLException {
//         throw new SQLFeatureNotSupportedException("getQueryTimeout");
//     }
// 
//     @Override
//     public final void setQueryTimeout(final int seconds) throws SQLException {
//         throw new SQLFeatureNotSupportedException("setQueryTimeout");
//     }
// 
//     @Override
//     public final int getFetchDirection() throws SQLException {
//         throw new SQLFeatureNotSupportedException("getFetchDirection");
//     }
// 
//     @Override
//     public final void setFetchDirection(final int direction) throws SQLException {
//         throw new SQLFeatureNotSupportedException("setFetchDirection");
//     }
// 
//     @Override
//     public final ResultSet getGeneratedKeys() throws SQLException {
//         throw new SQLFeatureNotSupportedException("getGeneratedKeys");
//     }
// 
//     @Override
//     public final void addBatch(final String sql) throws SQLException {
//         throw new SQLFeatureNotSupportedException("addBatch sql");
//     }
// 
//     @Override
//     public void clearBatch() throws SQLException {
//         throw new SQLFeatureNotSupportedException("clearBatch");
//     }
// 
//     @Override
//     public int[] executeBatch() throws SQLException {
//         throw new SQLFeatureNotSupportedException("executeBatch");
//     }
// 
//     //========================================================================= maybe  1.7 compatable =======================================================
//     public final void closeOnCompletion() throws SQLException {
//         throw new SQLFeatureNotSupportedException("closeOnCompletion");
//     }
// 
//     public final boolean isCloseOnCompletion() throws SQLException {
//         throw new SQLFeatureNotSupportedException("isCloseOnCompletion");
//     }
// 
//     //========================================================================= maybe  1.7 compatable =======================================================
// 
// }


import com.elong.pb.newdda.client.jdbc.operation.AbstractUnsupportedOperationStatement;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Statement;
import java.util.Collection;
        for (Statement each : getRoutedStatements()) {
            each.close();
        }
        closed = true;
        getRoutedStatements().clear();
    }

    @Override
    public final boolean isClosed() throws SQLException {
        return closed;
    }

    @Override
    public final boolean isPoolable() throws SQLException {
        return poolable;
    }

    @Override
    public final void setPoolable(final boolean poolable) throws SQLException {
        this.poolable = poolable;
        if (getRoutedStatements().isEmpty()) {
            return;
        }
        for (Statement each : getRoutedStatements()) {
            each.setPoolable(poolable);
        }
    }

    @Override
    public final int getFetchSize() throws SQLException {
// Path: src/main/java/com/elong/pb/newdda/client/jdbc/operation/AbstractUnsupportedOperationStatement.java
// public abstract class AbstractUnsupportedOperationStatement extends WrapperAdapter implements Statement {
// 
//     @Override
//     public final int getMaxFieldSize() throws SQLException {
//         throw new SQLFeatureNotSupportedException("getMaxFieldSize");
//     }
// 
//     @Override
//     public final void setMaxFieldSize(final int max) throws SQLException {
//         throw new SQLFeatureNotSupportedException("setMaxFieldSize");
//     }
// 
//     @Override
//     public final int getMaxRows() throws SQLException {
//         throw new SQLFeatureNotSupportedException("getMaxRows");
//     }
// 
//     @Override
//     public final void setMaxRows(final int max) throws SQLException {
//         throw new SQLFeatureNotSupportedException("setMaxRows");
//     }
// 
//     @Override
//     public final int getQueryTimeout() throws SQLException {
//         throw new SQLFeatureNotSupportedException("getQueryTimeout");
//     }
// 
//     @Override
//     public final void setQueryTimeout(final int seconds) throws SQLException {
//         throw new SQLFeatureNotSupportedException("setQueryTimeout");
//     }
// 
//     @Override
//     public final int getFetchDirection() throws SQLException {
//         throw new SQLFeatureNotSupportedException("getFetchDirection");
//     }
// 
//     @Override
//     public final void setFetchDirection(final int direction) throws SQLException {
//         throw new SQLFeatureNotSupportedException("setFetchDirection");
//     }
// 
//     @Override
//     public final ResultSet getGeneratedKeys() throws SQLException {
//         throw new SQLFeatureNotSupportedException("getGeneratedKeys");
//     }
// 
//     @Override
//     public final void addBatch(final String sql) throws SQLException {
//         throw new SQLFeatureNotSupportedException("addBatch sql");
//     }
// 
//     @Override
//     public void clearBatch() throws SQLException {
//         throw new SQLFeatureNotSupportedException("clearBatch");
//     }
// 
//     @Override
//     public int[] executeBatch() throws SQLException {
//         throw new SQLFeatureNotSupportedException("executeBatch");
//     }
// 
//     //========================================================================= maybe  1.7 compatable =======================================================
//     public final void closeOnCompletion() throws SQLException {
//         throw new SQLFeatureNotSupportedException("closeOnCompletion");
//     }
// 
//     public final boolean isCloseOnCompletion() throws SQLException {
//         throw new SQLFeatureNotSupportedException("isCloseOnCompletion");
//     }
// 
//     //========================================================================= maybe  1.7 compatable =======================================================
// 
// }


// Path: src/main/java/com/elong/pb/newdda/client/jdbc/adapter/AbstractStatementAdapter.java
import com.elong.pb.newdda.client.jdbc.operation.AbstractUnsupportedOperationStatement;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Statement;
import java.util.Collection;

        for (Statement each : getRoutedStatements()) {
            each.close();
        }
        closed = true;
        getRoutedStatements().clear();
    }

    @Override
    public final boolean isClosed() throws SQLException {
        return closed;
    }

    @Override
    public final boolean isPoolable() throws SQLException {
        return poolable;
    }

    @Override
    public final void setPoolable(final boolean poolable) throws SQLException {
        this.poolable = poolable;
        if (getRoutedStatements().isEmpty()) {
            return;
        }
        for (Statement each : getRoutedStatements()) {
            each.setPoolable(poolable);
        }
    }

    @Override
    public final int getFetchSize() throws SQLException {
        return fetchSize;