@Override public Object visit(ASTAnnotationTypeDeclaration node, Object data) { if (node.isAbstract()) { // may have several violations, with different explanations reportUnnecessaryModifiers(data, node, Modifier.ABSTRACT, "annotations types are implicitly abstract"); } if (!node.isNested()) { return data; } // a public annotation within an interface or annotation if (node.isPublic() && node.enclosingTypeIsA(TypeKind.INTERFACE, TypeKind.ANNOTATION)) { reportUnnecessaryModifiers(data, node, Modifier.PUBLIC, "members of " + getPrintableNodeKind(node.getEnclosingTypeDeclaration()) + " types are implicitly public"); } if (node.isStatic()) { // a static annotation reportUnnecessaryModifiers(data, node, Modifier.STATIC, "nested annotation types are implicitly static"); } return data; }
@Override public Object visit(ASTAnnotationTypeDeclaration node, Object data) { if (node.isAbstract()) { // may have several violations, with different explanations reportUnnecessaryModifiers(data, node, Modifier.ABSTRACT, "annotations types are implicitly abstract"); } if (!node.isNested()) { return data; } // a public annotation within an interface or annotation if (node.isPublic() && node.enclosingTypeIsA(TypeKind.INTERFACE, TypeKind.ANNOTATION)) { reportUnnecessaryModifiers(data, node, Modifier.PUBLIC, "members of " + getPrintableNodeKind(node.getEnclosingTypeDeclaration()) + " types are implicitly public"); } if (node.isStatic()) { // a static annotation reportUnnecessaryModifiers(data, node, Modifier.STATIC, "nested annotation types are implicitly static"); } return data; }