private void startUpdateObserver(final UnitRegistryData unitRegistryData) {
registryDiff.diff(unitRegistryData.getUnitGroupUnitConfigList());
IdentifiableMessageMap<String, UnitConfig, UnitConfig.Builder> identifiableNewMessageMap = registryDiff.getNewMessageMap();
IdentifiableMessageMap<String, UnitConfig, UnitConfig.Builder> identifiableUpdatedMessageMap = registryDiff.getUpdatedMessageMap();
IdentifiableMessageMap<String, UnitConfig, UnitConfig.Builder> identifiableRemovedMessageMap = registryDiff.getRemovedMessageMap();
try {
if (!identifiableNewMessageMap.isEmpty()) {
final List<UnitConfig> unitConfigs = new ArrayList<>(identifiableNewMessageMap.getMessages());
NEW_UNIT_CONFIG_OBSERVABLE.notifyObservers(unitConfigs);
}
if (!identifiableUpdatedMessageMap.isEmpty()) {
final List<UnitConfig> unitConfigs = new ArrayList<>(identifiableUpdatedMessageMap.getMessages());
UPDATED_UNIT_CONFIG_OBSERVABLE.notifyObservers(unitConfigs);
}
if (!identifiableRemovedMessageMap.isEmpty()) {
final List<UnitConfig> unitConfigs = new ArrayList<>(identifiableRemovedMessageMap.getMessages());
REMOVED_UNIT_CONFIG_OBSERVABLE.notifyObservers(unitConfigs);
}
} catch (CouldNotPerformException ex) {
ExceptionPrinter.printHistory(ex, LOGGER, LogLevel.ERROR);
}
}
}