// the linked id substitution string used to use the idCounter
private static final String LINKEDIDAUTOCOUNTER = "{n}";
+ // the linked id substitution string used to use the filename extension of
+ // --append
+ // or --open
+ private static final String LINKEDIDEXTENSION = "{extension}";
+
// the linked id substitution string used to use the base filename of --append
// or --open
private static final String LINKEDIDBASENAME = "{basename}";
{
rest = rest.replace(LINKEDIDBASENAME, avm.getBasename());
}
+ if (rest.contains(LINKEDIDEXTENSION))
+ {
+ rest = rest.replace(LINKEDIDEXTENSION, avm.getExtension());
+ }
if (rest.contains(LINKEDIDDIRNAME))
{
rest = rest.replace(LINKEDIDDIRNAME, avm.getDirname());
*/
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);
}
/*
*/
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);
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);
}
}
/*
- * This method returns the basename of the first --append or --open value.
- * Used primarily for substitutions in output filenames.
+ * This method returns the basename of File file
*/
public static String getBasename(File file)
{
+ return getBasenameOrExtension(file, false);
+ }
+
+ /*
+ * This method returns the extension of File file.
+ */
+ public static String getExtension(File file)
+ {
+ return getBasenameOrExtension(file, true);
+ }
+
+ public static String getBasenameOrExtension(File file, boolean extension)
+ {
if (file == null)
return null;
- String basename = null;
+ String value = null;
String filename = file.getName();
int lastDot = filename.lastIndexOf('.');
if (lastDot > 0) // don't truncate if starts with '.'
{
- basename = filename.substring(0, lastDot);
+ value = extension ? filename.substring(lastDot + 1)
+ : filename.substring(0, lastDot);
}
else
{
- basename = filename;
+ value = extension ? "" : filename;
}
- return basename;
+ return value;
}
/*