gov.nih.nci.cabig.caaers2adeers.xslt.ClasspathURIResolver.java Source code

Java tutorial

Introduction

Here is the source code for gov.nih.nci.cabig.caaers2adeers.xslt.ClasspathURIResolver.java

Source

/*******************************************************************************
 * Copyright SemanticBits, Northwestern University and Akaza Research
 * 
 * Distributed under the OSI-approved BSD 3-Clause License.
 * See http://ncip.github.com/caaers/LICENSE.txt for details.
 ******************************************************************************/
package gov.nih.nci.cabig.caaers2adeers.xslt;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;

import javax.xml.transform.Source;
import javax.xml.transform.TransformerException;
import javax.xml.transform.URIResolver;
import javax.xml.transform.stream.StreamSource;

/**
 * Will resolve a file from classpath
 */
public class ClasspathURIResolver implements URIResolver {

    protected static final Log log = LogFactory.getLog(ClasspathURIResolver.class);
    private ResourceLoader resourceLoader;
    private String baseFolder;

    public ClasspathURIResolver(ResourceLoader resourceLoader, String baseFolder) {
        this.resourceLoader = resourceLoader;
        this.baseFolder = baseFolder;
    }

    public Source resolve(String href, String base) throws TransformerException {
        if (log.isDebugEnabled())
            log.debug(
                    "resolving (" + baseFolder + href + ") the resource [base : " + base + ", href :" + href + "]");

        try {
            Resource resource = resourceLoader.getResource(baseFolder + href);
            if (resource != null && resource.exists())
                return new StreamSource(resource.getInputStream());
        } catch (Exception e) {
            log.error("Unable to load resource [base : " + base + ", href: " + href + "]", e);
        }
        if (log.isDebugEnabled())
            log.debug("unable to find resource [base : " + base + ", href :" + href + "], "
                    + "so instructing to use default lookup");
        return null; //use default lookup
    }
}