package blade.migrate.provider.templates;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import freemarker.cache.TemplateLoader;
public class BladeTemplateLoader implements TemplateLoader {
@Override
public void closeTemplateSource(Object templateSource) throws IOException {
if (templateSource instanceof BladeTemplate) {
BladeTemplate bladeTemplate = (BladeTemplate) templateSource;
bladeTemplate.getReader().close();
}
}
@Override
public Object findTemplateSource(String name) throws IOException {
BladeTemplate retval = null;
InputStream resource = this.getClass().getResourceAsStream(name);
if( resource != null ) {
// found template
retval = new BladeTemplate(resource);
}
return retval;
}
@Override
public long getLastModified(Object arg0) {
return -1;
}
@Override
public Reader getReader(Object templateSource, String encoding) throws IOException {
Reader retval = null;
if (templateSource instanceof BladeTemplate) {
BladeTemplate bladeTemplate = (BladeTemplate) templateSource;
retval = bladeTemplate.getReader();
}
return retval;
}
@Override
public String toString() {
return super.toString();
}
}