JAL-3141 Reformatted code in eclipse
[jalview.git] / src / jalview / io / BackupFilenameParts.java
index b9f766e..6f7da93 100644 (file)
@@ -14,34 +14,21 @@ public class BackupFilenameParts
 
   String templateEnd;
 
-  String extension;
-
   boolean isBackupFile;
 
-  public BackupFilenameParts(File file, String base, String template, int digits,
-          String extension)
+  public BackupFilenameParts(File file, String base, String template,
+          int digits)
   {
-    this(file.getName(), base, template, digits, extension);
+    this(file.getName(), base, template, digits);
   }
 
   public BackupFilenameParts(String filename, String base, String template,
-          int digits, String extension)
+          int suggesteddigits)
   {
     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);
+    int digits = 0;
     String templateStart = template;
     String templateEnd = "";
     if (numcharstart > -1)
@@ -49,27 +36,38 @@ public class BackupFilenameParts
       templateStart = template.substring(0, numcharstart);
       templateEnd = template.substring(
               numcharstart + BackupFiles.NUM_PLACEHOLDER.length());
+      digits = suggesteddigits;
+    }
+
+    // calculate minimum length of a backup filename
+    int minlength = base.length() + template.length()
+            - BackupFiles.NUM_PLACEHOLDER.length() + digits;
+
+    if (!(filename.startsWith(base) && filename.length() >= minlength))
+    {
+      // non-starter
+      return;
     }
-    
+
     int startLength = base.length() + templateStart.length();
-    int endLength = templateEnd.length() + extension.length();
-    String numString = filename.substring(startLength,
-            filename.length() - endLength);
+    int endLength = templateEnd.length();
+    String numString = numcharstart > -1
+            ? filename.substring(startLength, filename.length() - endLength)
+            : "";
 
     if (filename.length() >= startLength + digits + endLength
             && filename.startsWith(base + templateStart)
-            && filename.endsWith(templateEnd + extension)
-            && numString.matches("[0-9]+"))
+            && filename.endsWith(templateEnd)
+            && numString.matches("[0-9]*"))
     {
       this.base = base;
       this.templateStart = templateStart;
-      this.num = Integer.parseInt(numString);
+      this.num = numString.length() > 0 ? Integer.parseInt(numString) : 0;
       this.digits = digits;
-      this.templateStart = templateStart;
       this.templateEnd = templateEnd;
       this.isBackupFile = true;
     }
-    
+
   }
 
   public boolean isBackupFile()