org.springframework.core.type.filter

## Class AnnotationTypeFilter

- java.lang.Object
- - org.springframework.core.type.filter.AbstractTypeHierarchyTraversingFilter
  - - org.springframework.core.type.filter.AnnotationTypeFilter

All Implemented Interfaces:
  TypeFilter

    public class AnnotationTypeFilter
    extends AbstractTypeHierarchyTraversingFilter

A simple filter which matches classes with a given annotation, checking inherited annotations as well.

The matching logic mirrors that of `Class.isAnnotationPresent()`.

Since:
  2.5
Author:
  Mark Fisher, Ramnivas Laddad, Juergen Hoeller

### Constructor Summary

Constructors
Constructor and Description
`AnnotationTypeFilter(Class<? extends Annotation> annotationType)` Create a new AnnotationTypeFilter for the given annotation type.
`AnnotationTypeFilter(Class<? extends Annotation> annotationType, boolean considerMetaAnnotations)` Create a new AnnotationTypeFilter for the given annotation type.
`AnnotationTypeFilter(Class<? extends Annotation> annotationType, boolean considerMetaAnnotations, boolean considerInterfaces)` Create a new `AnnotationTypeFilter` for the given annotation type.

### Method Summary

Methods
`protected boolean` `matchSelf(MetadataReader metadataReader)` Override this to match self characteristics alone.
`protected Boolean` `matchSuperClass(String superClassName)` Override this to match on super type name.

### Methods inherited from class org.springframework.core.type.filter.AbstractTypeHierarchyTraversingFilter

`match, matchClassName, matchInterface`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### AnnotationTypeFilter

    public AnnotationTypeFilter(Class<? extends Annotation> annotationType)

Create a new AnnotationTypeFilter for the given annotation type. This filter will also match meta-annotations. To disable the meta-annotation matching, use the constructor that accepts a '`considerMetaAnnotations`' argument. The filter will not match interfaces.

Parameters:
  `annotationType` - the annotation type to match

#### AnnotationTypeFilter

    public AnnotationTypeFilter(Class<? extends Annotation> annotationType,
                        boolean considerMetaAnnotations)

Create a new AnnotationTypeFilter for the given annotation type. The filter will not match interfaces.

Parameters:
  `annotationType` - the annotation type to match
  `considerMetaAnnotations` - whether to also match on meta-annotations

#### AnnotationTypeFilter

    public AnnotationTypeFilter(Class<? extends Annotation> annotationType,
                        boolean considerMetaAnnotations,
                        boolean considerInterfaces)

Create a new `AnnotationTypeFilter` for the given annotation type.

Parameters:
  `annotationType` - the annotation type to match
  `considerMetaAnnotations` - whether to also match on meta-annotations
  `considerInterfaces` - whether to also match interfaces

### Method Detail

#### matchSelf

    protected boolean matchSelf(MetadataReader metadataReader)

Description copied from class: `AbstractTypeHierarchyTraversingFilter`
Override this to match self characteristics alone. Typically, the implementation will use a visitor to extract information to perform matching.

Overrides:
  `matchSelf` in class `AbstractTypeHierarchyTraversingFilter`

#### matchSuperClass

    protected Boolean matchSuperClass(String superClassName)

Description copied from class: `AbstractTypeHierarchyTraversingFilter`
Override this to match on super type name.

Overrides:
  `matchSuperClass` in class `AbstractTypeHierarchyTraversingFilter`