package org.nutz.resource.impl; import java.io.File; import java.io.IOException; import java.util.List; import java.util.regex.Pattern; import org.nutz.lang.util.Disks; import org.nutz.resource.NutResource; import org.nutz.resource.Scans; public class FileSystemResourceLocation extends ResourceLocation { public int priority = 150; public String id() { return root.getAbsolutePath(); } public void scan(final String base, final Pattern pattern, final List<NutResource> list) { final File baseFile = new File(root.getAbsolutePath()+"/"+base); if (baseFile.isFile()) { list.add(new FileResource(baseFile).setPriority(priority)); return; } Disks.visitFile(baseFile, new Scans.ResourceFileVisitor(list, base, priority), new Scans.ResourceFileFilter(pattern)); } public String toString() { return "Dir[path=" + root + "]"; } private File root; public FileSystemResourceLocation(File root) throws IOException { if (root == null) throw new RuntimeException("FileSystemResourceLocation root can't be NULL"); this.root = root.getAbsoluteFile().getCanonicalFile(); } }