org.springframework.core.type.filter
Class AnnotationTypeFilter

java.lang.Object
  extended by org.springframework.core.type.filter.AbstractTypeHierarchyTraversingFilter
      extended by 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
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
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