code: protected static Class[] _computeProxiedInterface(Object delegate) {
  
          // NOTE:  Order is important for XXXStatement.
          if (delegate instanceof Array) {
              return arrayInterface;
          } else if (delegate instanceof Connection) {
              return connectionInterface;
          } else if (delegate instanceof CallableStatement) {
              return callableStatementInterface;
          } else if (delegate instanceof DatabaseMetaData) {
              return databaseMetaDataInterface;
          } else if (delegate instanceof PreparedStatement) {
              return preparedStatementInterface;
          } else if (delegate instanceof ResultSet) {
              return resultSetInterface;
          } else if (delegate instanceof Statement) {
              return statementInterface;
          } else {
              return null;
          }
      }
docs: Given a delegate, retrieves the interface that must be implemented by a
  surrogate dynamic proxy to ensure pooling sensitive methods
  of the delegate are not exposed directly to clients.
  
  @param delegate the target delegate of interest
  @return the interface that must be implemented by a surrogate dynamic
  proxy to ensure pooling sensitive methods of the delegate are
  not exposed directly to clients