package cn.dreampie.common.util.scan;
import cn.dreampie.common.util.Lister;
import cn.dreampie.log.Logger;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collections;
import java.util.Enumeration;
/**
* Created by Dreampie on 16/9/7.
*/
public class FileScaner extends Scaner<FileScaner> {
private static final Logger logger = Logger.getLogger(FileScaner.class);
private boolean isAbsolutePath = false;
public FileScaner isAbsolutePath(boolean isAbsolutePath) {
this.isAbsolutePath = isAbsolutePath;
return this;
}
/**
* 要扫描的类父级
*
* @return scaner
*/
public static FileScaner of() {
return new FileScaner().scanInJar(false).targetPattern("*.*");
}
/**
* 扫描文件
*
* @param baseDir
* @return
*/
protected Enumeration<URL> urlSolve(String baseDir) {
if (isAbsolutePath) {
try {
if (!baseDir.contains("/") && baseDir.contains(".")) {
baseDir = baseDir.replaceAll("\\.", "/");
}
File file = new File(baseDir);
return Collections.enumeration(Lister.<URL>of(file.toURI().toURL()));
} catch (MalformedURLException e) {
logger.error(e.getMessage(), e);
}
} else {
super.urlSolve(baseDir);
}
return null;
}
}