private static boolean collectModifiedClasses(
    File file, String filePath, int rootPathLength, Map<String, HotSwapFile> container, HotSwapProgress progress, long timeStamp
  ) {
    if (progress.isCancelled()) {
      return false;
    }
    final File[] files = file.listFiles();
    if (files != null) {
      for (File child : files) {
        if (!collectModifiedClasses(child, filePath + "/" + child.getName(), rootPathLength, container, progress, timeStamp)) {
          return false;
        }
      }
    }
    else { // not a dir
      String qualifiedName = getQualifiedName(filePath, rootPathLength);
      if (qualifiedName != null && file.lastModified() > timeStamp) {
        progress.setText(JavaDebuggerBundle.message("progress.hotswap.scanning.path", filePath));
        container.put(qualifiedName, new HotSwapFile(file));
      }
    }
    return true;
  }
private static boolean collectModifiedClasses(
    File file, String filePath, int rootPathLength, Map<String, HotSwapFile> container, HotSwapProgress progress, long timeStamp
  )