}
@SuppressWarnings("unchecked")
private <T> void collect(Set<Class<T>>candidates, Class<?> clazz, String pkg) throws ClassNotFoundException {
scanner.resetFilters(false);
scanner.addIncludeFilter(clazz.isAnnotation() ? new AnnotationTypeFilter((Class<? extends Annotation>) clazz) : new AssignableTypeFilter(clazz));
if (logger.isInfoEnabled()) logger.info("Scanning classpath [" + pkg + "] looking for " + (clazz.isAnnotation() ? "@" + clazz.getSimpleName() + " annotated" : clazz.getSimpleName()) + " domain entities");
Set<BeanDefinition> definitions = scanner.findCandidateComponents(pkg);
for (BeanDefinition def : definitions) {
if (logger.isDebugEnabled()) logger.debug("Found matching class [" + def.getBeanClassName() + "]");
candidates.add(ClassUtils.forName(def.getBeanClassName()));