docs: private void scanCodebase(IClassPath classPath, LinkedList<WorkListItem> workList, DiscoveredCodeBase discoveredCodeBase)
              throws InterruptedException {
          if (DEBUG) {
              System.out.println("Scanning " + discoveredCodeBase.getCodeBase().getCodeBaseLocator());
          }
  
          IScannableCodeBase codeBase = (IScannableCodeBase) discoveredCodeBase.getCodeBase();
  
          ICodeBaseIterator i = codeBase.iterator();
          while (i.hasNext()) {
              ICodeBaseEntry entry = i.next();
              if (VERBOSE) {
                  System.out.println("Entry: " + entry.getResourceName());
              }
  
              if (!NO_PARSE_CLASS_NAMES && codeBase.isApplicationCodeBase()
                      && DescriptorFactory.isClassResource(entry.getResourceName()) && !(entry instanceof SingleFileCodeBaseEntry)) {
                  parseClassName(entry);
              }
  
              // Note the resource exists in this codebase
              discoveredCodeBase.addCodeBaseEntry(entry);
  
              // If resource is a nested archive, add it to the worklist
              if (scanNestedArchives && (codeBase.isApplicationCodeBase() || codeBase instanceof DirectoryCodeBase)
                      && Archive.isLibraryFileName(entry.getResourceName())) {
                  if (VERBOSE) {
                      System.out.println("Entry is an library!");
                  }
                  ICodeBaseLocator nestedArchiveLocator = classFactory.createNestedArchiveCodeBaseLocator(codeBase,
                          entry.getResourceName());
                  addToWorkList(workList,
                          new WorkListItem(nestedArchiveLocator, codeBase.isApplicationCodeBase(), ICodeBase.Discovered.NESTED));
              }
          }
      }