org.rythmengine.resource.FileResourceLoader Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rythm-engine Show documentation
Show all versions of rythm-engine Show documentation
A strong typed high performance Java Template engine with .Net Razor like syntax
/**
* Copyright (C) 2013-2016 The Rythm Engine project
* for LICENSE and other details see:
* https://github.com/rythmengine/rythmengine
*/
package org.rythmengine.resource;
import org.rythmengine.RythmEngine;
import java.io.File;
/**
* Implement a File resource loader
*/
public class FileResourceLoader extends ResourceLoaderBase {
private File root;
public FileResourceLoader(RythmEngine engine, File root) {
this.root = root;
setEngine(engine);
}
@Override
public ITemplateResource load(String path) {
return new FileTemplateResource(path, this);
}
@Override
public String getResourceLoaderRoot() {
return root.getPath();
}
public File getRoot() {
return root;
}
@Override
public void scan(TemplateResourceManager manager) {
File file = new File(getResourceLoaderRoot());
scan_(file, manager);
}
private void scan_(File file, TemplateResourceManager manager) {
if (file.isFile() && file.canRead()) {
load_(file, manager);
} else if (file.isDirectory()) {
File[] files = file.listFiles();
if (null == files) return;
for (File f: files) {
scan_(f, manager);
}
}
}
private void load_(final File file, final TemplateResourceManager manager) {
manager.resourceLoaded(new FileTemplateResource(file, this));
}
}