class AssetRenditionDownloadRequest extends SlingHttpServletRequestWrapper {

    @Override
    public RequestPathInfo getRequestPathInfo() {
        return new RequestPathInfo() {
            @Nonnull
            @Override
            public String getResourcePath() {
                return getResource().getPath();
            }

            @CheckForNull
            @Override
            public String getExtension() {
                return extension;
            }

            @CheckForNull
            @Override
            public String getSelectorString() {
                return StringUtils.join(selectors, ".");
            }

            @Nonnull
            @Override
            public String[] getSelectors() {
                return selectors;
            }

            @CheckForNull
            @Override
            public String getSuffix() {
                return suffix;
            }

            @CheckForNull
            @Override
            public Resource getSuffixResource() {
                return getResource().getResourceResolver().getResource(getSuffix());
            }
        };
    }

    public  AssetRenditionDownloadRequest(final SlingHttpServletRequest wrappedRequest,
                                         final String method,
                                         final Resource resource,
                                         final String[] selectors,
                                         final String extension,
                                         final String suffix);

}