void (@NotNull Element element) { myMapping.clear(); List<Element> files = element.getChildren("file"); if (!files.isEmpty()) { Map<VirtualFilePointer, Charset> mapping = new HashMap<>(); for (Element fileElement : files) { String url = fileElement.getAttributeValue("url"); String charsetName = fileElement.getAttributeValue("charset"); Charset charset = CharsetToolkit.forName(charsetName); if (charset == null) { continue; } if (PROJECT_URL.equals(url)) { myProjectCharset = charset; } else if (url != null) { VirtualFilePointer file = VirtualFilePointerManager.getInstance().create(url, this, null); mapping.put(file, charset); } } myMapping.putAll(mapping); } myNative2AsciiForPropertiesFiles = Boolean.parseBoolean(element.getAttributeValue("native2AsciiForPropertiesFiles")); myDefaultCharsetForPropertiesFiles = CharsetToolkit.forName(element.getAttributeValue("defaultCharsetForPropertiesFiles")); myDefaultConsoleCharset = CharsetToolkit.forName(element.getAttributeValue("defaultCharsetForConsole")); myBomForNewUtf8Files = BOMForNewUTF8Files.getByExternalName(element.getAttributeValue("addBOMForNewFiles")); myModificationTracker.incModificationCount(); }