## org.springframework.core.type.filter
Class AbstractTypeHierarchyTraversingFilter

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

All Implemented Interfaces:
  TypeFilter

Direct Known Subclasses:
  AnnotationTypeFilter, AssignableTypeFilter

    public abstract class AbstractTypeHierarchyTraversingFilter

extends Object
implements TypeFilter

Type filter that is aware of traversing over hierarchy.

This filter is useful when matching needs to be made based on potentially the whole class/interface hierarchy. The algorithm employed uses succeed-fast strategy i.e. if at anytime a match is declared, no further processing is carried out.

Since:
  2.5
Author:
  Ramnivas Laddad, Mark Fisher

Constructor Summary
`protected` `AbstractTypeHierarchyTraversingFilter(boolean considerInherited, boolean considerInterfaces)`

Method Summary
`boolean` `match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory)` Determine whether this filter matches for the class described by the given metadata.
`protected boolean` `matchClassName(String className)` Override this to match on type name.
`protected Boolean` `matchInterface(String interfaceNames)` Override this to match on interface type name.
`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 java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AbstractTypeHierarchyTraversingFilter

    protected AbstractTypeHierarchyTraversingFilter(boolean considerInherited,
                                                    boolean considerInterfaces)

Method Detail

### match

    public boolean match(MetadataReader metadataReader,
                         MetadataReaderFactory metadataReaderFactory)
                  throws IOException

  Description copied from interface: `TypeFilter`
  Determine whether this filter matches for the class described by the given metadata.

  Specified by:
    `match` in interface `TypeFilter`
  Parameters:
    `metadataReader` - the metadata reader for the target class
    `metadataReaderFactory` - a factory for obtaining metadata readers for other classes (such as superclasses and interfaces)
  Returns:
    whether this filter matches
  Throws:
    `IOException` - in case of I/O failure when reading metadata

### matchSelf

    protected boolean matchSelf(MetadataReader metadataReader)

  Override this to match self characteristics alone. Typically, the implementation will use a visitor to extract information to perform matching.

### matchClassName

    protected boolean matchClassName(String className)

  Override this to match on type name.

### matchSuperClass

    protected Boolean matchSuperClass(String superClassName)

  Override this to match on super type name.

### matchInterface

    protected Boolean matchInterface(String interfaceNames)

  Override this to match on interface type name.