* @see entagged.listing.Lister#addFile(entagged.audioformats.AudioFile,
* java.lang.String)
*/
public void addFile(AudioFile audioFile, String relativePath)
throws Exception {
FileDescriptor descriptor = insertSourceFile(audioFile, audioFile
.getBitrate());
try {
prepareTagData(audioFile);
String[] directories = directoryPattern.createFrom(audioFile, null);
StringBuffer path = new StringBuffer(directories[0]);
for (int i = 1; i < directories.length; i++) {
path.append(File.separatorChar);
path.append(directories[i]);
}
String fileName = filePatten.createFrom(audioFile);
/*
* now we know path and fileName
*/
if (!fileName.endsWith(descriptor.getExtension())) {
descriptor.setTargetName(fileName + "."
+ descriptor.getExtension());
} else {
descriptor.setTargetName(fileName);
}
// Now create the DirectoryDescritor for the target
DirectoryDescriptor targetDirectory = assertDirectory(path
.toString(), true);
descriptor.setTargetDirectory(targetDirectory);
targetDirectory.addChild(descriptor);
} catch (MissingValueException e) {
descriptor.setMissingFields(e.getMissingFields());
}
}