private List<String> getBeanClasses(final IAnnotationFinder finder) {
final IAnnotationFinder delegate = FinderFactory.ModuleLimitedFinder.class.isInstance(finder) ?
FinderFactory.ModuleLimitedFinder.class.cast(finder).getDelegate() : finder;
final AnnotationFinder annotationFinder = AnnotationFinder.class.cast(delegate);
final Archive archive = annotationFinder.getArchive();
final List<String> classes = new ArrayList<String>(500);
if (!WebappAggregatedArchive.class.isInstance(archive)) {
return annotationFinder.getAnnotatedClassNames();
}
final WebappAggregatedArchive aggregatedArchive = (WebappAggregatedArchive) archive;
final Map<URL, List<String>> map = aggregatedArchive.getClassesMap();
for (final Map.Entry<URL, List<String>> entry : map.entrySet()) {
final URL beansXml = hasBeansXml(entry.getKey());
if (beansXml != null) {
classes.addAll(entry.getValue());
}
}
return classes;
}