private void synchronizeUpdate(DataStructureDataUpdateModel dataModel) throws SynchronizationException {
try {
if (!dataStructuresCoreService.existsUpdate(dataModel.getLocation())) {
dataStructuresCoreService.createUpdate(dataModel.getLocation(), dataModel.getName(), dataModel.getHash());
DATA_STRUCTURE_UPDATE_MODELS.put(dataModel.getName(), dataModel);
logger.info("Synchronized a new Update Data file [{}] from location: {}", dataModel.getName(), dataModel.getLocation());
} else {
DataStructureDataUpdateModel existing = dataStructuresCoreService.getUpdate(dataModel.getLocation());
if (!dataModel.equals(existing)) {
dataStructuresCoreService.updateUpdate(dataModel.getLocation(), dataModel.getName(), dataModel.getHash());
DATA_STRUCTURE_UPDATE_MODELS.put(dataModel.getName(), dataModel);
logger.info("Synchronized a modified Update Data file [{}] from location: {}", dataModel.getName(), dataModel.getLocation());
}
}
UPDATE_SYNCHRONIZED.add(dataModel.getLocation());
} catch (DataStructuresException e) {
throw new SynchronizationException(e);
}
}