code: public <T> T unwrap(Class<T> iface)
                      throws SQLException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.entry(tc, "unwrap : PUID = " + ivPuId + " iface = " + iface);
  
          T result = null;
  
          try
          {
              result = iface.cast(this);
          } catch (Throwable ex)
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(tc, "unwrap : SQLException: " + getClass().getName() +
                              " does not implement " + iface);
              throw new SQLException(getClass().getName() + " does not implement " +
                                     iface);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.exit(tc, "unwrap : " + result);
  
          return result;
      }
docs: LI3294-25