public boolean isWrapperFor(Class<?> iface) throws SQLException {
   String methodCall = "isWrapperFor(" + (iface == null ? "null" : iface.getName()) + ")";
   try {
     // NOTE: could call super.isWrapperFor to simplify this logic, but it would result in extra
     // log output
     // when the super classes would be invoked..
     return reportReturn(
         methodCall,
         (iface != null
                 && (iface == PreparedStatement.class
                     || iface == Statement.class
                     || iface == Spy.class))
             || realPreparedStatement.isWrapperFor(iface));
   } catch (SQLException s) {
     reportException(methodCall, s);
     throw s;
   }
 }
 public boolean isWrapperFor(Class<?> iface) throws SQLException {
   return delegate.isWrapperFor(iface);
 }
 public boolean isWrapperFor(Class<?> iface) throws SQLException {
   this.assertPs();
   return ps.isWrapperFor(iface);
 }
 @Override
 public boolean isWrapperFor(Class<?> iface) throws SQLException {
   return stmt.isWrapperFor(iface);
 }