try {
if ("assignable".equals(filterType)) {
return new AssignableTypeFilter(classLoader.loadClass(expression));
} else if ("aspectj".equals(filterType)) {
return new AspectJTypeFilter(expression, classLoader);
} else if ("wildcard".equals(filterType)) {
return new RegexPatternTypeFilter(ClassNameWildcardCompiler.compileClassName(expression,
ClassNameWildcardCompiler.MATCH_PREFIX));
} else if ("custom".equals(filterType)) {
Class<?> filterClass = classLoader.loadClass(expression);