docs: private void scanClasses() throws PersistenceUnitScannerException {
          try {
              for (URL url : urlSet) {
                  final HashSet<ClassInfoType> citSet = new HashSet<ClassInfoType>();
                  final String urlProtocol = url.getProtocol();
                  if ("file".equalsIgnoreCase(urlProtocol)) {
                      // Protocol is "file", which either addresses a jar file or an exploded jar file
                      final Path taPath = Paths.get(url.toURI());
                      if (Files.isDirectory(taPath)) {
                          // Exploded Archive
                          citSet.addAll(processExplodedJarFormat(taPath));
                      } else {
                          // Unexploded Archive
                          citSet.addAll(processUnexplodedFile(taPath));
                      }
                  } else if (url.toString().startsWith("jar:file")) {
                      citSet.addAll(processJarFileURL(url));
                  } else {
                      // InputStream will be in jar format.
                      citSet.addAll(processJarFormatInputStreamURL(url));
                  }
  
                  processInnerClasses(citSet);
                  scannedClassesMap.put(url, citSet);
              }
          } catch (Exception e) {
              FFDCFilter.processException(e, PersistenceUnitScanner.class.getName() + ".scanClasses", "118");
              throw new PersistenceUnitScannerException(e);
          }
      }