Interface AnnotationFilter
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface public interface AnnotationFilter
Callback interface that can be used to filter specific annotation types.Note that the
MergedAnnotations
model (which this interface has been designed for) always ignores lang annotations according to thePLAIN
filter (for efficiency reasons). Any additional filters and even custom filter implementations apply within this boundary and may only narrow further from here.- Since:
- 5.2
- Author:
- Phillip Webb, Juergen Hoeller
- See Also:
MergedAnnotations
Field Summary
Fields Modifier and Type Field Description static AnnotationFilter
ALL
AnnotationFilter
that always matches and can be used when no relevant annotation types are expected to be present at all.static AnnotationFilter
JAVA
static AnnotationFilter
NONE
Deprecated.as of 5.2.6 since theMergedAnnotations
model always ignores lang annotations according to thePLAIN
filter (for efficiency reasons)static AnnotationFilter
PLAIN
AnnotationFilter
that matches annotations in thejava.lang
andorg.springframework.lang
packages and their subpackages.
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default boolean
matches(Annotation annotation)
Test if the given annotation matches the filter.default boolean
matches(Class<?> type)
Test if the given type matches the filter.boolean
matches(String typeName)
Test if the given type name matches the filter.static AnnotationFilter
packages(String... packages)
Create a newAnnotationFilter
that matches annotations in the specified packages.
Field Detail
PLAIN
static final AnnotationFilter PLAIN
AnnotationFilter
that matches annotations in thejava.lang
andorg.springframework.lang
packages and their subpackages.This is the default filter in the
MergedAnnotations
model.
JAVA
static final AnnotationFilter JAVA
ALL
static final AnnotationFilter ALL
AnnotationFilter
that always matches and can be used when no relevant annotation types are expected to be present at all.
NONE
@Deprecated static final AnnotationFilter NONE
Deprecated.as of 5.2.6 since theMergedAnnotations
model always ignores lang annotations according to thePLAIN
filter (for efficiency reasons)AnnotationFilter
that never matches and can be used when no filtering is needed (allowing for any annotation types to be present).- See Also:
PLAIN
Method Detail
matches
default boolean matches(Annotation annotation)
Test if the given annotation matches the filter.- Parameters:
annotation
- the annotation to test- Returns:
true
if the annotation matches
matches
default boolean matches(Class<?> type)
Test if the given type matches the filter.- Parameters:
type
- the annotation type to test- Returns:
true
if the annotation matches
matches
boolean matches(String typeName)
Test if the given type name matches the filter.- Parameters:
typeName
- the fully qualified class name of the annotation type to test- Returns:
true
if the annotation matches
packages
static AnnotationFilter packages(String... packages)
Create a newAnnotationFilter
that matches annotations in the specified packages.- Parameters:
packages
- the annotation packages that should match- Returns:
- a new
AnnotationFilter
instance