PreferencesException {
boolean backupCondition;
boolean writeResult;
File temporaryMetadataFile;
Fileformat ff;
String metadataFileName;
String temporaryMetadataFileName;
Hibernate.initialize(getRegelsatz());
switch (MetadataFormat.findFileFormatsHelperByName(this.projekt.getFileFormatInternal())) {
case METS:
ff = new MetsMods(this.regelsatz.getPreferences());
break;
case RDF:
ff = new RDFFile(this.regelsatz.getPreferences());
break;
default:
ff = new XStream(this.regelsatz.getPreferences());
break;
}
// createBackupFile();
metadataFileName = getMetadataFilePath();
temporaryMetadataFileName = getTemporaryMetadataFileName(metadataFileName);
ff.setDigitalDocument(gdzfile.getDigitalDocument());
// ff.write(getMetadataFilePath());
writeResult = ff.write(temporaryMetadataFileName);
temporaryMetadataFile = new File(temporaryMetadataFileName);
backupCondition = writeResult && temporaryMetadataFile.exists() && (temporaryMetadataFile.length() > 0);
if (backupCondition) {
createBackupFile();
FilesystemHelper.renameFile(temporaryMetadataFileName, metadataFileName);