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.
  • Method Details

    • 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 node
      annotation - 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, List<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
    • getAnnotationHolder

      public static DetailAST getAnnotationHolder(DetailAST ast)
      Gets the AST that holds a series of annotations for the potentially annotated AST. Returns null 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 node
      annotation - the annotation name to check for
      Returns:
      the AST representing that annotation
      Throws:
      IllegalArgumentException - when ast or annotations are null; when annotation is blank