class RequestDumperFactory{
        /**
         * create IRequestDumpable dumper.
         * @param dumperName dumper name, need it to identify which dumper will be created
         * @param config type: DumpConfig, needed by dumper constructor
         * @param exchange type: HttpServerExchange, needed by dumper constructor
         * @return IRequestDumpable dumper
         */
        IRequestDumpable create(String dumperName, DumpConfig config, HttpServerExchange exchange) {<FILL_FUNCTION_BODY>}
    }

            switch (dumperName) {
                case DumpConstants.BODY:
                    return new BodyDumper(config, exchange);
                case  DumpConstants.COOKIES:
                    return new CookiesDumper(config, exchange);
                case DumpConstants.HEADERS:
                    return new HeadersDumper(config, exchange);
                case DumpConstants.QUERY_PARAMETERS:
                    return new QueryParametersDumper(config, exchange);
                case DumpConstants.URL:
                    return new UrlDumper(config, exchange);
                default:
                    logger.error("unsupported dump type: {}", dumperName);
                    return null;
            }
        
<no_super_class>