private IClassPath buildClassPath(IClassPathBuilder builder, IClassFactory factory)
      throws InterruptedException, IOException, CheckedAnalysisException {

    progress.startScanningArchives(project.getFileCount());

    for (String path : project.getFileList()) {
      builder.addCodeBase(factory.createFilesystemCodeBaseLocator(path), true);
    }

    for (String path : project.getAuxClasspathEntryList()) {
      builder.addCodeBase(factory.createFilesystemCodeBaseLocator(path), false);
    }

    IClassPath classPath = factory.createClassPath();

    builder.build(classPath, progress);

    progress.doneScanningArchives();

    return classPath;
  }