package se.unlogic.standardutils.xml; import java.net.URI; import javax.xml.transform.Templates; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.URIResolver; import javax.xml.transform.stream.StreamSource; public class XSLTURICacher implements XSLTCacher { private Templates cachedXSLT; private URI uri; private URIResolver uriResolver; public XSLTURICacher(URI uri) throws TransformerConfigurationException { super(); this.uri = uri; this.reloadStyleSheet(); } public XSLTURICacher(URI uri, URIResolver uriResolver) throws TransformerConfigurationException { this.uri = uri; this.uriResolver = uriResolver; this.reloadStyleSheet(); } public Transformer getTransformer() throws TransformerConfigurationException { return cachedXSLT.newTransformer(); } public void reloadStyleSheet() throws TransformerConfigurationException { TransformerFactory transFact = TransformerFactory.newInstance(); if(uriResolver != null){ transFact.setURIResolver(uriResolver); } this.cachedXSLT = transFact.newTemplates(new StreamSource(uri.toString())); } public void unload() {} }