void (@NotNull Path enumFile) { if (enumFile.equals(nameToIdRegistry.getFile())) { return; } SimpleStringPersistentEnumerator newNameToIdRegistry = new SimpleStringPersistentEnumerator(getEnumFile()); Map<String, Integer> newInvertedState = newNameToIdRegistry.getInvertedState(); Map<String, Integer> oldInvertedState = nameToIdRegistry.getInvertedState(); oldInvertedState.forEach((oldKey, oldId) -> { Integer newId = newInvertedState.get(oldKey); if (newId == null) { int createdId = newNameToIdRegistry.enumerate(oldKey); if (createdId != oldId) { reassign(oldKey, createdId); } } else if (oldId.intValue() != newId.intValue()) { reassign(oldKey, newId); } }); nameToIdRegistry = newNameToIdRegistry; }