private void visitResourceClassloader(boolean includeSubPackages, ClassLoader classLoader, ResourceVisitor visitor, String pathWithPrefix,
StringBuilder qualifiedNameBuilder, int qualifiedNamePrefixLength, Set<String> urlSet) throws IOException {
if (classLoader instanceof URLClassLoader) {
URLClassLoader urlClassLoader = (URLClassLoader) classLoader;
for (URL url : urlClassLoader.getURLs()) {
String file = BasicHelper.toLowerCase(url.getFile());
if (file.endsWith(FILE_EXTENSION_JAR)) {
URL jarUrl = createJarUrl(url.toString());
visitResourceUrl(includeSubPackages, visitor, pathWithPrefix, qualifiedNameBuilder, qualifiedNamePrefixLength, jarUrl, urlSet);
} else {
visitResourceUrl(includeSubPackages, visitor, pathWithPrefix, qualifiedNameBuilder, qualifiedNamePrefixLength, url, urlSet);
}
}
}
ClassLoader parent = classLoader.getParent();
if (parent != null) {
visitResourceClassloader(includeSubPackages, parent, visitor, pathWithPrefix, qualifiedNameBuilder, qualifiedNamePrefixLength, urlSet);
}
}