X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FBackupFilenameFilter.java;h=573040fb824aec95e973563e76ad00589b9eb8e4;hb=b7014049e421026d0f2d57179af9688472cd78f2;hp=8cf7cbf5f10900d5c469b26c4684d16db1c18b13;hpb=cd73f7c027ebda43ab3f3e01c6ffcd58eaf3aa53;p=jalview.git diff --git a/src/jalview/io/BackupFilenameFilter.java b/src/jalview/io/BackupFilenameFilter.java index 8cf7cbf..573040f 100644 --- a/src/jalview/io/BackupFilenameFilter.java +++ b/src/jalview/io/BackupFilenameFilter.java @@ -2,6 +2,7 @@ package jalview.io; import java.io.File; import java.io.FilenameFilter; +import java.io.IOException; public class BackupFilenameFilter implements FilenameFilter { @@ -12,116 +13,34 @@ public class BackupFilenameFilter implements FilenameFilter public int digits; - public String extension; - - public BackupFilenameFilter(String base, String template, int digits, - String extension) + public BackupFilenameFilter(String base, String template, int digits) { this.base = base; this.template = template; this.digits = digits; - this.extension = extension; } @Override - public boolean accept(File file, String filename) - { - // CHECK THIS IS NOT ALWAYS THE PARENT DIR - if (file.isDirectory()) - { - return true; - } - else - { - BackupFilenameParts bffp = new BackupFilenameParts(filename, base, - template, digits, extension); - return bffp.isBackupFile(); - } - } - -} - -class BackupFilenameParts -{ - File file; - - String base; - - String templateStart; - - int num; - - int digits; - - String templateEnd; - - String extension; - - boolean isBackupFile; - - public BackupFilenameParts(File file, String base, String template, int digits, - String extension) + public boolean accept(File dir, String filename) { - this(file.getName(), base, template, digits, extension); - } - - public BackupFilenameParts(String filename, String base, String template, - int digits, String extension) - { - this.isBackupFile = false; - - if (!(filename.startsWith(base) && filename.endsWith(extension))) + try { - return; - } - - int numcharstart = template.indexOf(BackupFiles.NUM_PLACEHOLDER); - String templateStart = template; - String templateEnd = ""; - if (numcharstart > -1) - { - templateStart = template.substring(0, numcharstart); - templateEnd = template.substring(numcharstart + BackupFiles.NUM_PLACEHOLDER.length()); - } - int startLength = base.length() + templateStart.length(); - int endLength = templateEnd.length() + extension.length(); - String numString = filename.substring(startLength, filename.length() - endLength + 1); - - if (filename.length() >= startLength + digits + endLength - && filename.startsWith(base + templateStart) - && filename.endsWith(templateEnd + extension) - && numString.matches("[0-9]+")) + File file = new File( + dir.getCanonicalPath() + File.separatorChar + filename); + if (file.isDirectory()) + { + // backup files aren't dirs! + return false; + } + } catch (IOException e) { - this.file = file; - this.base = base; - this.templateStart = templateStart; - this.num = Integer.parseInt(numString); - this.digits = digits; - this.templateStart = templateStart; - this.templateEnd = templateEnd; - this.isBackupFile = true; + System.out.println("IOException when checking file '" + filename + + "' is a backupfile"); } - - } - public static String getBackupFilename(int index, String base, - String template, - int digits, String extension) - { - String numString = String.format("%0" + digits + "d", index); - String backupSuffix = template.replaceAll(BackupFiles.NUM_PLACEHOLDER, - numString); - String backupfilename = base + backupSuffix + extension; - return backupfilename; + BackupFilenameParts bffp = new BackupFilenameParts(filename, base, + template, digits); + return bffp.isBackupFile(); } - public boolean isBackupFile() - { - return this.isBackupFile; - } - - public int indexNum() - { - return this.num; - } -} \ No newline at end of file +}