code: public static WrappedRequest wrap(final HttpServletRequest request) throws IOException {
          if (request instanceof WrappedRequest) {
              return (WrappedRequest) request;
          }
  
          return new WrappedRequest(request);
      }
docs: Factory method used to create a WrappedRequest, wrapping a HttpServletRequest.
  
  @param request the HttServletRequest
  @return WrappedRequest
  @throws IOException if reading the request body fails.