package cn.dreampie.common.util.scan;
/**
* Created by ice on 14-12-19.
*/
public class ClassScaner extends Scaner<ClassScaner> {
private Class<?> target;
public ClassScaner(Class<?> target) {
this.target = target;
}
/**
* 要扫描的类父级
*
* @param target class
* @return scaner
*/
public static ClassScaner of(Class<?> target) {
return new ClassScaner(target).scanInJar(true).targetPattern("*.class");
}
/**
* 检测目标类
*
* @param clazz
* @return
*/
public boolean checkTarget(Object clazz) {
return this.target.isAssignableFrom((Class<?>) clazz) && this.target != clazz;
}
public String packageFilePathSolve(String filePath) {
filePath = filePath.substring(filePath.indexOf("classes/") + "classes/".length(), filePath.indexOf(".class"));
return filePath.replaceAll("/", ".");
}
public String jarFilePathSolve(String filePath) {
return filePath.replaceAll("/", ".").substring(0, filePath.length() - 6);
}
}