@Override
public void updateCurrentFactory(DataAndNewMetadata<R> update, String user, String comment, MergeDiffInfo<R> mergeDiff) {
S changeSummary = null;
if (mergeDiff!=null){
changeSummary=changeSummaryCreator.createChangeSummary(mergeDiff);
}
final StoredDataMetadata<S> storedDataMetadata = new StoredDataMetadata<>(
LocalDateTime.now(),
UUID.randomUUID().toString(),
user,
comment,
update.metadata.baseVersionId,
update.metadata.dataModelVersion, changeSummary
);
final DataAndStoredMetadata<R,S> updateData = new DataAndStoredMetadata<>(update.root, storedDataMetadata);
writeFile(currentFactoryPath, dataSerialisationManager.write(updateData.root));
writeFile(currentFactoryPathMetadata, dataSerialisationManager.writeStorageMetadata(updateData.metadata));
fileSystemFactoryStorageHistory.updateHistory(updateData.metadata,updateData.root);
}