@Override
  public boolean value(FileIndexingRequest request) {
    if (request.isDeleteRequest()) {
      return true;
    }

    VirtualFile file = request.getFile();
    int fileId = request.getFileId();
    if (myIndexableFilesFilter != null && !myIndexableFilesFilter.containsFileId(fileId)) {
      if (myFilesFromOtherProjects >= MAX_FILES_TO_UPDATE_FROM_OTHER_PROJECT) return false;
      ++myFilesFromOtherProjects;
      return true;
    }

    if (FileBasedIndexEx.belongsToScope(file, myRestrictedTo, myFilter)) return true;

    if (myFilesFromOtherProjects < MAX_FILES_TO_UPDATE_FROM_OTHER_PROJECT) {
      ++myFilesFromOtherProjects;
      return true;
    }
    return false;
  }
@Override
  public boolean value(FileIndexingRequest request)