Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

46
LINES

< > BotCompany Repo | #1038776 // BackupThinner

JavaX fragment (include) [tags: use-pretranspiled]

Libraryless. Click here for Pure Java version (11000L/62K).

sclass BackupThinner {
  settable File dir;
  
  settable TimeZone timeZone = defaultTimeZone();
  settable long currentTime = now();
  
  settable L<File> allFiles;
  
  gettable L<File> deletableFiles;
  
  L<File> files;
  Map<File, Double> ageMap;
  
  // age = age in days
  swappable bool shouldKeep(double age, double lastAge) {
    ret defaultAgeBasedBackupRetentionStrategy_shouldKeep(age, lastAge);
  }
  
  void scan {
    if (allFiles == null)
      allFiles = listFilesNotDirs(dir);
      
    deletableFiles = new L;
    files = new L;
    ageMap = new Map;
      
    for (File f : allFiles) {
      var bfa = new BackupFileAge().timeZone(timeZone).currentTime(currentTime);
      if (!bfa.fileName(f.getName()).parse()) continue;
      
      continue unless eq(bfa.originalName, "concepts.structure.gz");
      ageMap.put(f, bfa.ageInDays());
      files.add(f);
    }

    sortByMap_inPlace(files, ageMap);
    double lastAge = -1;
    for (File f : files) {
      double age = ageMap.get(f);
      if (!shouldKeep(age, lastAge))
        deletableFiles.add(f);
      else
        lastAge = age;
    }
  }    
}

Author comment

Began life as a copy of #1011269

download  show line numbers  debug dex  old transpilations   

Travelled to 1 computer(s): mqqgnosmbjvj

No comments. add comment

Snippet ID: #1038776
Snippet name: BackupThinner
Eternal ID of this version: #1038776/6
Text MD5: 1210d0469a8acb8074bcec09b1e584be
Transpilation MD5: 188c4e3b3a89a2dd4c00857cd1f6b376
Author: stefan
Category: javax
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2025-04-20 19:25:21
Source code size: 1173 bytes / 46 lines
Pitched / IR pitched: No / No
Views / Downloads: 52 / 83
Version history: 5 change(s)
Referenced in: [show references]