package cn.dreampie.common.util.scan;
import java.lang.annotation.Annotation;
/**
* Created by ice on 14-12-19.
*/
public class AnnotationScaner extends Scaner<AnnotationScaner> {
private Class<? extends Annotation> target;
public AnnotationScaner(Class<? extends Annotation> target) {
this.target = target;
}
/**
* 要扫描的类父级
*
* @param target class
* @return scaner
*/
public static AnnotationScaner of(Class<? extends Annotation> target) {
return new AnnotationScaner(target).scanInJar(true).targetPattern("*.class");
}
/**
* 检测目标类
*
* @param clazz
* @return
*/
public boolean checkTarget(Object clazz) {
return ((Class<?>) clazz).getAnnotation(target) != null;
}
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);
}
}