public abstract class AbstractTypeHierarchyTraversingFilter extends Object implements TypeFilter
This filter is useful when matching needs to be made based on potentially the whole class/interface hierarchy. The algorithm employed uses a succeed-fast strategy: if at any time a match is declared, no further processing is carried out.
Modifier | Constructor and Description |
---|---|
protected |
AbstractTypeHierarchyTraversingFilter(boolean considerInherited,
boolean considerInterfaces) |
Modifier and Type | Method and Description |
---|---|
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 interfaceName)
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.
|
protected final Log logger
protected AbstractTypeHierarchyTraversingFilter(boolean considerInherited, boolean considerInterfaces)
public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException
TypeFilter
match
in interface TypeFilter
metadataReader
- the metadata reader for the target classmetadataReaderFactory
- a factory for obtaining metadata readers
for other classes (such as superclasses and interfaces)IOException
- in case of I/O failure when reading metadataprotected boolean matchSelf(MetadataReader metadataReader)
protected boolean matchClassName(String className)
@Nullable protected Boolean matchSuperClass(String superClassName)