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); } } }