SlingResourceSourceFactory.java 1.64 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  org.apache.sling.api.SlingHttpServletRequest
 *  org.apache.sling.api.SlingHttpServletResponse
 *  org.apache.sling.api.resource.ResourceResolver
 */
package com.day.cq.rewriter.xml;

import com.day.cq.rewriter.xml.ResourceSource;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.util.Map;
import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceFactory;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.resource.ResourceResolver;

public class SlingResourceSourceFactory
implements SourceFactory {
    private final ResourceResolver resourceResolver;
    private final SlingHttpServletRequest request;
    private final SlingHttpServletResponse response;

    public SlingResourceSourceFactory(ResourceResolver resolver, SlingHttpServletRequest request, SlingHttpServletResponse response) {
        this.request = request;
        this.response = response;
        this.resourceResolver = resolver;
    }

    @Override
    public Source getSource(String location, Map parameters) throws IOException, MalformedURLException {
        return new ResourceSource(this.resourceResolver, location, this.request, this.response);
    }

    @Override
    public void release(Source source) {
        if (source instanceof ResourceSource) {
            try {
                source.getInputStream().close();
            }
            catch (IOException ignore) {
                // empty catch block
            }
        }
    }
}