/*******************************************************************************
* Copyright (c) 2010 Robert "Unlogic" Olofsson (unlogic@unlogic.se).
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v3
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl-3.0-standalone.html
******************************************************************************/
package se.unlogic.standardutils.xml;
import java.io.File;
import javax.xml.transform.Source;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.URIResolver;
import javax.xml.transform.stream.StreamSource;
public class CachedXSLTFile extends CachedXSLTBase{
private File file;
private URIResolver uriResolver;
public void reloadStyleSheet() throws TransformerConfigurationException{
this.cacheStyleSheet(file);
}
public CachedXSLTFile(File f) throws TransformerConfigurationException{
this.file = f;
this.cacheStyleSheet(f);
}
public CachedXSLTFile(File file, URIResolver uriResolver) throws TransformerConfigurationException {
this.file = file;
this.uriResolver = uriResolver;
this.cacheStyleSheet(file);
}
private void cacheStyleSheet(File f) throws TransformerConfigurationException{
Source xsltSource = new StreamSource(f);
TransformerFactory transFact = TransformerFactory.newInstance();
if(uriResolver != null){
transFact.setURIResolver(uriResolver);
}
this.templates = transFact.newTemplates(xsltSource);
this.file = f;
}
@Override
public String toString() {
return "CachedXSLTFile: " + file;
}
}