Class AnnotationUtil
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.utils.AnnotationUtil
-
public final class AnnotationUtil extends Object
Contains utility methods designed to work with annotations.
-
-
Field Summary
Fields Modifier and Type Field Description private static String
FQ_OVERRIDE
Fully-qualifiedOverride
annotation name.private static String
OVERRIDE
Override
annotation name.private static Set<String>
OVERRIDE_ANNOTATIONS
Simple and fully-qualifiedOverride
annotation names.private static String
THE_AST_IS_NULL
Common message.
-
Constructor Summary
Constructors Modifier Constructor Description private
AnnotationUtil()
Private utility constructor.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
containsAnnotation(DetailAST ast)
Checks if the AST is annotated with any annotation.static boolean
containsAnnotation(DetailAST ast, String annotation)
Checks if the AST is annotated with the passed in annotation.static boolean
containsAnnotation(DetailAST ast, Set<String> annotations)
Checks if the given AST element is annotated with any of the specified annotations.private static DetailAST
findFirstAnnotation(DetailAST ast, Predicate<DetailAST> predicate)
Checks if the given AST is annotated with at least one annotation that matches the given predicate and returns the AST representing the first matching annotation.static DetailAST
getAnnotation(DetailAST ast, String annotation)
Checks if the AST is annotated with the passed in annotation and returns the AST representing that annotation.private static String
getAnnotationFullIdent(DetailAST annotationNode)
Gets the full ident text of the annotation AST.static DetailAST
getAnnotationHolder(DetailAST ast)
Gets the AST that holds a series of annotations for the potentially annotated AST.static boolean
hasOverrideAnnotation(DetailAST ast)
Checks if the AST is annotated withOverride
orjava.lang.Override
annotation.
-
-
-
Field Detail
-
THE_AST_IS_NULL
private static final String THE_AST_IS_NULL
Common message.- See Also:
- Constant Field Values
-
OVERRIDE
private static final String OVERRIDE
Override
annotation name.- See Also:
- Constant Field Values
-
FQ_OVERRIDE
private static final String FQ_OVERRIDE
Fully-qualifiedOverride
annotation name.- See Also:
- Constant Field Values
-
OVERRIDE_ANNOTATIONS
private static final Set<String> OVERRIDE_ANNOTATIONS
Simple and fully-qualifiedOverride
annotation names.
-
-
Constructor Detail
-
AnnotationUtil
private AnnotationUtil()
Private utility constructor.- Throws:
UnsupportedOperationException
- if called
-
-
Method Detail
-
containsAnnotation
public static boolean containsAnnotation(DetailAST ast, String annotation)
Checks if the AST is annotated with the passed in annotation.This method will not look for imports or package statements to detect the passed in annotation.
To check if an AST contains a passed in annotation taking into account fully-qualified names (ex: java.lang.Override, Override) this method will need to be called twice. Once for each name given.
- Parameters:
ast
- the current nodeannotation
- the annotation name to check for- Returns:
- true if contains the annotation
-
containsAnnotation
public static boolean containsAnnotation(DetailAST ast)
Checks if the AST is annotated with any annotation.- Parameters:
ast
- the current node- Returns:
true
if the AST contains at least one annotation- Throws:
IllegalArgumentException
- when ast is null
-
containsAnnotation
public static boolean containsAnnotation(DetailAST ast, Set<String> annotations)
Checks if the given AST element is annotated with any of the specified annotations.This method accepts both simple and fully-qualified names, e.g. "Override" will match both java.lang.Override and Override.
- Parameters:
ast
- The type or method definition.annotations
- A collection of annotations to look for.- Returns:
true
if the given AST element is annotated with at least one of the specified annotations;false
otherwise.- Throws:
IllegalArgumentException
- when ast or annotations are null
-
getAnnotationFullIdent
private static String getAnnotationFullIdent(DetailAST annotationNode)
Gets the full ident text of the annotation AST.- Parameters:
annotationNode
- The annotation AST.- Returns:
- The full ident text.
-
hasOverrideAnnotation
public static boolean hasOverrideAnnotation(DetailAST ast)
Checks if the AST is annotated withOverride
orjava.lang.Override
annotation.- Parameters:
ast
- the current node- Returns:
true
if the AST contains Override annotation- Throws:
IllegalArgumentException
- when ast is null
-
getAnnotationHolder
public static DetailAST getAnnotationHolder(DetailAST ast)
Gets the AST that holds a series of annotations for the potentially annotated AST. Returnsnull
if the passed in AST does not have an Annotation Holder.- Parameters:
ast
- the current node- Returns:
- the Annotation Holder
- Throws:
IllegalArgumentException
- when ast is null
-
getAnnotation
public static DetailAST getAnnotation(DetailAST ast, String annotation)
Checks if the AST is annotated with the passed in annotation and returns the AST representing that annotation.This method will not look for imports or package statements to detect the passed in annotation.
To check if an AST contains a passed in annotation taking into account fully-qualified names (ex: java.lang.Override, Override) this method will need to be called twice. Once for each name given.
- Parameters:
ast
- the current nodeannotation
- the annotation name to check for- Returns:
- the AST representing that annotation
- Throws:
IllegalArgumentException
- when ast or annotations are null; when annotation is blank
-
findFirstAnnotation
private static DetailAST findFirstAnnotation(DetailAST ast, Predicate<DetailAST> predicate)
Checks if the given AST is annotated with at least one annotation that matches the given predicate and returns the AST representing the first matching annotation.This method will not look for imports or package statements to detect the passed in annotation.
- Parameters:
ast
- the current nodepredicate
- The predicate which decides if an annotation matches- Returns:
- the AST representing that annotation
-
-