public void writeExternal(Element element) throws WriteExternalException { super.writeExternal(element); element.setAttribute(VERSION_TAG, VALID_VERSION); element.setAttribute(IS_LOCKED, String.valueOf(myLockedProfile)); if (!myInitialized) { for (Element el : myDeinstalledInspectionsSettings.values()) { element.addContent((Element) el.clone()); } return; } Map<String, Boolean> diffMap = getDisplayLevelMap(); if (diffMap != null) { diffMap = new TreeMap<String, Boolean>(diffMap); for (String toolName : myDeinstalledInspectionsSettings.keySet()) { diffMap.put(toolName, false); } for (final String toolName : diffMap.keySet()) { if (!myLockedProfile && diffMap.get(toolName).booleanValue()) continue; final Element toolElement = myDeinstalledInspectionsSettings.get(toolName); if (toolElement == null) { final ToolsImpl toolList = myTools.get(toolName); LOG.assertTrue(toolList != null); final Element inspectionElement = new Element(INSPECTION_TOOL_TAG); inspectionElement.setAttribute(CLASS_TAG, toolName); toolList.writeExternal(inspectionElement); element.addContent(inspectionElement); } else { element.addContent((Element) toolElement.clone()); } } } }