InjectInvalidTargetingOnScopingAnnotation.java 文件源码

java
阅读 30 收藏 0 点赞 0 评论 0

项目:error-prone-aspirator 作者:
@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;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号