@Override
@SuppressWarnings("unchecked")
public final Description matchClass(ClassTree classTree, VisitorState state) {
Symbol classSymbol = ASTHelpers.getSymbol(classTree);
if ((classSymbol.flags() & Flags.ANNOTATION) != 0
&& SCOPE_ANNOTATION_MATCHER.matches(classTree, state)) {
Target target = ASTHelpers.getAnnotation(classSymbol, Target.class);
boolean hasExclusivelyTypeAndOrMethodTargeting = false;
if (target != null) {
for (ElementType elementType : target.value()) {
if (elementType != METHOD && elementType != TYPE) {
return describe(classTree, state);
} else if (elementType == METHOD || elementType == TYPE) {
hasExclusivelyTypeAndOrMethodTargeting = true;
}
}
}
if(!hasExclusivelyTypeAndOrMethodTargeting) { // true for no target set and for @Target({})
return describe(classTree, state);
}
}
return Description.NO_MATCH;
}
InjectInvalidTargetingOnScopingAnnotation.java 文件源码
java
阅读 30
收藏 0
点赞 0
评论 0
项目:error-prone-aspirator
作者:
评论列表
文章目录