return Collections.emptySet();
}
// up to the archive root
virtualFile = virtualFile.getParent().getParent();
Indexer indexer = new Indexer();
List<VirtualFile> classChildren;
try {
classChildren = virtualFile.getChildren(new SuffixMatchFilter(".class",
VisitorAttributes.RECURSE_LEAVES_ONLY));
} catch (IOException e) {
LOG.warn(WARNING_MESSAGE_LOAD_CLASSES, e);
return Collections.emptySet();
}
for (VirtualFile classFile : classChildren) {
InputStream inputStream = null;
try {
inputStream = classFile.openStream();
indexer.index(inputStream);
} catch (IOException e) {
LOG.warn(WARNING_MESSAGE_LOAD_CLASSES, e);
return Collections.emptySet();
} finally {
VFSUtils.safeClose(inputStream);
}
}
Index index = indexer.complete();
Collection<ClassInfo> knownClasses = index.getKnownClasses();
Set<String> domainPackagesNames = new HashSet<String>();
for (ClassInfo knownClass : knownClasses) {
if (AccessFlag.isPublic((knownClass.flags()))) {