X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FBackupFilenameFilter.java;h=b8a721e9ec8b03420d28c160ce5746382561c302;hb=refs%2Fheads%2FJalview-JS%2Fdevelop_j2s_v3_2_9_j11;hp=8cf7cbf5f10900d5c469b26c4684d16db1c18b13;hpb=cd73f7c027ebda43ab3f3e01c6ffcd58eaf3aa53;p=jalview.git diff --git a/src/jalview/io/BackupFilenameFilter.java b/src/jalview/io/BackupFilenameFilter.java index 8cf7cbf..b8a721e 100644 --- a/src/jalview/io/BackupFilenameFilter.java +++ b/src/jalview/io/BackupFilenameFilter.java @@ -1,7 +1,28 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.io; import java.io.File; import java.io.FilenameFilter; +import java.io.IOException; public class BackupFilenameFilter implements FilenameFilter { @@ -12,116 +33,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 +}