/**
* Search the classes in the PREDICATE_BASE_PACKAGE and build a list of all simple (non-composite) Predicate classes
* @return a list of simple Predicate classes
* @throws ClassNotFoundException
*/
private ArrayList<Class<?>> discoverSimplePredicateClasses() throws ClassNotFoundException {
ArrayList<Class<?>> discoveredPredicateClasses = new ArrayList<Class<?>>();
// This technique was copped from:
// http://stackoverflow.com/questions/520328/can-you-find-all-classes-in-a-package-using-reflection
ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(true);
provider.addIncludeFilter(new AssignableTypeFilter(Predicate.class));
// scan in org.example.package
Set<BeanDefinition> components = provider.findCandidateComponents(PREDICATE_BASE_PACKAGE);
for (BeanDefinition component : components)
{
Class cls = Class.forName(component.getBeanClassName());
if (!cls.isMemberClass() // filter out inner class predicates from test packages
&& Predicate.class.isAssignableFrom(cls) // filter out any non-predicate classes
&& !CompositePredicate.class.isAssignableFrom(cls)) // filter out 'and' and 'or' predicates
{
discoveredPredicateClasses.add(cls);
// use class cls found
LOG.debug("discovered " + cls.toString());
}
}
return discoveredPredicateClasses;
}
QueryByCriteriaJaxbTest.java 文件源码
java
阅读 45
收藏 0
点赞 0
评论 0
项目:kc-rice
作者:
评论列表
文章目录