Пример #1
0
  private void updateFilenameHistoryCache() {
    // TODO [medium] Performance: This throws away the unchanged entries. It should only update new
    // database version
    filenameHistoryCache.clear();

    for (PartialFileHistory cacheFileHistory : fullDatabaseVersionCache.getFileHistories()) {
      FileVersion lastVersion = cacheFileHistory.getLastVersion();
      String fileName = lastVersion.getPath();

      if (lastVersion.getStatus() != FileStatus.DELETED) {
        filenameHistoryCache.put(fileName, cacheFileHistory);
      }
    }
  }
Пример #2
0
  // TODO [medium] Very inefficient. Always updates whole cache
  private void updateContentChecksumCache() {
    contentChecksumFileHistoriesCache.clear();

    for (PartialFileHistory fullFileHistory : fullDatabaseVersionCache.getFileHistories()) {
      FileChecksum lastVersionChecksum = fullFileHistory.getLastVersion().getChecksum();

      if (lastVersionChecksum != null) {
        List<PartialFileHistory> historiesWithVersionsWithSameChecksum =
            contentChecksumFileHistoriesCache.get(lastVersionChecksum);

        // Create if it does not exist
        if (historiesWithVersionsWithSameChecksum == null) {
          historiesWithVersionsWithSameChecksum = new ArrayList<PartialFileHistory>();
        }

        // Add to cache
        historiesWithVersionsWithSameChecksum.add(fullFileHistory);
        contentChecksumFileHistoriesCache.put(
            lastVersionChecksum, historiesWithVersionsWithSameChecksum);
      }
    }
  }