package com.berryworks.edireader.util;
public class FileSequenceNameGenerator {
protected final String filenamePattern;
protected String filenameSuffix = "", filenamePrefix = "";
protected int sequenceNumberLength;
private int count;
public FileSequenceNameGenerator(String filenamePattern) {
this.filenamePattern = filenamePattern;
establishPattern();
}
private void establishPattern() {
boolean haveSeen0 = false;
for (int n = filenamePattern.length() - 1; n >= 0; n--) {
char c = filenamePattern.charAt(n);
if (c == '0') {
haveSeen0 = true;
sequenceNumberLength++;
} else if (haveSeen0) {
filenamePrefix = filenamePattern.substring(0, n + 1);
break;
} else {
filenameSuffix = c + filenameSuffix;
}
}
if (!haveSeen0)
throw new RuntimeException("Filename pattern must include a sequence one or more '0's.");
}
public String generateName() {
String sequenceDigits = "" + (100000 + ++count);
sequenceDigits = sequenceDigits.substring(sequenceDigits.length() - sequenceNumberLength);
return filenamePrefix + sequenceDigits + filenameSuffix;
}
public String getFilenamePattern() {
return filenamePattern;
}
}