com.vaadin.flow.internal.

Class AnnotationReader

java.lang.Object
com.vaadin.flow.internal.AnnotationReader
public class AnnotationReader extends Object

Helper class for reading annotation data.

For internal use only. May be renamed or removed in a future release.

Since:

1.0

  • Method Details

    • getStyleSheetAnnotations

      public static List<StyleSheet> getStyleSheetAnnotations(Class<? extends Component> componentClass)

      Finds all StyleSheet annotations on the given Component class, its super classes and implemented interfaces.

      Parameters:

      componentClass - the component class to search for the annotation

      Returns:

      a list the style sheet annotations found

      See Also:

    • getCssImportAnnotations

      public static List<CssImport> getCssImportAnnotations(Class<? extends Component> componentClass)

      Finds all CssImport annotations on the given Component class, its super classes and implemented interfaces.

      Parameters:

      componentClass - the component class to search for the annotation

      Returns:

      a list the CssImport annotations found

      See Also:

    • getJavaScriptAnnotations

      public static List<JavaScript> getJavaScriptAnnotations(Class<? extends Component> componentClass)

      Finds all JavaScript annotations on the given Component class, its super classes and implemented interfaces.

      Parameters:

      componentClass - the component class to search for the annotation

      Returns:

      a list the JavaScript annotations found

      See Also:

    • getJsModuleAnnotations

      public static List<JsModule> getJsModuleAnnotations(Class<? extends Component> componentClass)

      Finds all JsModule annotation on the given Component class, its super classes and implenented interfaces.

      Parameters:

      componentClass - the component class to search for the annotation

      Returns:

      a list the JavaScript annotations found

    • getAnnotationFor

      public static <T extends Annotation> Optional<T> getAnnotationFor(Field field, Class<T> annotationType)

      Helper to get an annotation for a field.

      Type Parameters:

      T - the annotation type

      Parameters:

      field - the field to check

      annotationType - the annotation type to look for

      Returns:

      an Optional annotation of the given type, or an empty Optional if the field does not have the given annotation

    • getAnnotationFor

      public static <T extends Annotation> Optional<T> getAnnotationFor(Class<?> clazz, Class<T> annotationType)

      Helper to get an annotation for a class. If the annotation is not present on the target class, its super classes and implemented interfaces are also searched for the annotation.

      Type Parameters:

      T - the annotation type

      Parameters:

      clazz - the class from which the annotation should be found

      annotationType - the annotation type to look for

      Returns:

      an Optional annotation of the given type

    • getAnnotationValueFor

      public static <A extends Annotation, T> Optional<T> getAnnotationValueFor(Class<?> clazz, Class<A> annotationType, Function<A,T> valueExtractor)

      Gets a value from an annotation for a class. If the annotation is not present on the target class, its super classes and implemented interfaces are also searched for the annotation.

      Type Parameters:

      A - the annotation type

      T - the annotation value type

      Parameters:

      clazz - the class from which the annotation should be found

      annotationType - the annotation type to look for

      valueExtractor - the function for extracting the value from the annotation if an annotation is present

      Returns:

      an Optional annotation value

    • getAnnotationsFor

      public static <T extends Annotation> List<T> getAnnotationsFor(Class<?> clazz, Class<T> annotationType)

      Helper to get annotations for a class by searching recursively the class and all its super classes and implemented interfaces and their parent interfaces.

      The annotations in the list are ordered top-down according to the class hierarchy. For each hierarchy level, the annotations from interfaces implemented at that level are on the list before the annotations of the class itself.

      NOTE: the list may contain annotations with the same values.

      Type Parameters:

      T - the annotation type

      Parameters:

      clazz - the class from which the annotation should be found

      annotationType - the annotation type to look for

      Returns:

      a list containing all the annotations found

    • getAnnotationValuesFor

      public static <A extends Annotation, T> Stream<T> getAnnotationValuesFor(Class<?> clazz, Class<A> annotationType, Function<A,T> valueExtractor)

      Gets values from annotations for a class by searching recursively the class and all its super classes and implemented interfaces and their parent interfaces.

      The values in the stream are ordered top-down according to the class hierarchy. For each hierarchy level, the values from annotations of interfaces implemented at that level are on the list before the values from annotations of the class itself.

      NOTE: the stream may contain duplicates

      Type Parameters:

      A - the annotation type

      T - the annotation value type

      Parameters:

      clazz - the class from which the annotation should be found

      annotationType - the annotation type to look for

      valueExtractor - the function for extracting the value from any found annotation

      Returns:

      a list containing all the annotations found