+/*
+ * 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 <http://www.gnu.org/licenses/>.
+ * 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 BackupFileFilter implements FilenameFilter
+public class BackupFilenameFilter implements FilenameFilter
{
public String base;
public int digits;
- public String extension;
-
- public BackupFileFilter(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)
+ public boolean accept(File dir, String filename)
{
- if (file.isDirectory())
- {
- return true;
- }
- else
+ try
{
- 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();
- if (filename.length() == startLength + digits + endLength
- && filename.startsWith(base + templateStart)
- && filename.endsWith(templateEnd + extension)
- && filename
- .substring(startLength,
- filename.length() - endLength + 1)
- .matches("[0-9]+"))
+ File file = new File(
+ dir.getCanonicalPath() + File.separatorChar + filename);
+ if (file.isDirectory())
{
- return true;
+ // backup files aren't dirs!
+ return false;
}
-
+ } catch (IOException e)
+ {
+ System.out.println("IOException when checking file '" + filename
+ + "' is a backupfile");
}
- return false;
+
+ BackupFilenameParts bffp = new BackupFilenameParts(filename, base,
+ template, digits);
+ return bffp.isBackupFile();
}
}