JAL-629 add an {extension} substitution
[jalview.git] / src / jalview / bin / argparser / ArgValuesMap.java
index 158041b..99a1ef6 100644 (file)
@@ -209,7 +209,16 @@ public class ArgValuesMap
    */
   public String getBasename()
   {
-    return getDirOrBasename(false);
+    return getDirBasenameOrExtension(false, false);
+  }
+
+  /*
+   * This method returns the basename of the first --append or --open value. 
+   * Used primarily for substitutions in output filenames.
+   */
+  public String getExtension()
+  {
+    return getDirBasenameOrExtension(false, true);
   }
 
   /*
@@ -218,10 +227,11 @@ public class ArgValuesMap
    */
   public String getDirname()
   {
-    return getDirOrBasename(true);
+    return getDirBasenameOrExtension(true, false);
   }
 
-  public String getDirOrBasename(boolean dirname)
+  public String getDirBasenameOrExtension(boolean dirname,
+          boolean extension)
   {
     String filename = null;
     String appendVal = getValue(Arg.APPEND);
@@ -234,7 +244,11 @@ public class ArgValuesMap
       return null;
 
     File file = new File(filename);
-    return dirname ? FileUtils.getDirname(file)
+    if (dirname)
+    {
+      return FileUtils.getDirname(file);
+    }
+    return extension ? FileUtils.getExtension(file)
             : FileUtils.getBasename(file);
   }