From 05c12ef9626200844bf5067056f03e84090565b3 Mon Sep 17 00:00:00 2001 From: Ben Soares Date: Wed, 9 Jan 2019 07:58:32 +0000 Subject: [PATCH] JAL-3141 forgot to add this file after extracting the class! --- src/jalview/io/BackupFilenameParts.java | 84 +++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 src/jalview/io/BackupFilenameParts.java diff --git a/src/jalview/io/BackupFilenameParts.java b/src/jalview/io/BackupFilenameParts.java new file mode 100644 index 0000000..b9f766e --- /dev/null +++ b/src/jalview/io/BackupFilenameParts.java @@ -0,0 +1,84 @@ +package jalview.io; + +import java.io.File; + +public class BackupFilenameParts +{ + 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) + { + this(file.getName(), base, template, digits, extension); + } + + public BackupFilenameParts(String filename, String base, String template, + int digits, String extension) + { + this.isBackupFile = false; + + // calculate minimum length of a backup filename + int minlength = base.length() + template.length() + - BackupFiles.NUM_PLACEHOLDER.length() + digits + + extension.length(); + + if (!(filename.startsWith(base) && filename.endsWith(extension) + && filename.length() >= minlength)) + { + // non-starter + 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); + + if (filename.length() >= startLength + digits + endLength + && filename.startsWith(base + templateStart) + && filename.endsWith(templateEnd + extension) + && numString.matches("[0-9]+")) + { + this.base = base; + this.templateStart = templateStart; + this.num = Integer.parseInt(numString); + this.digits = digits; + this.templateStart = templateStart; + this.templateEnd = templateEnd; + this.isBackupFile = true; + } + + } + + public boolean isBackupFile() + { + return this.isBackupFile; + } + + public int indexNum() + { + return this.num; + } +} -- 1.7.10.2