void (@NotNull final Element element) { super.writeExternal(element); JavaRunConfigurationExtensionManager.getInstance().writeExternal(this, element); DefaultJDOMExternalizer.write(this, element, JavaParametersUtil.getFilter(this)); final Data persistentData = getPersistentData(); DefaultJDOMExternalizer.write(persistentData, element, new DifferenceFilter<>(persistentData, new Data()) { @Override public boolean test(@NotNull Field field) { return "TEST_OBJECT".equals(field.getName()) || super.test(field); } }); if (!persistentData.getEnvs().isEmpty()) { EnvironmentVariablesComponent.writeExternal(element, persistentData.getEnvs()); } final String dirName = persistentData.getDirName(); if (!dirName.isEmpty()) { final Element dirNameElement = new Element("dir"); dirNameElement.setAttribute("value", FileUtil.toSystemIndependentName(dirName)); element.addContent(dirNameElement); } final String categoryName = persistentData.getCategory(); if (!categoryName.isEmpty()) { final Element categoryNameElement = new Element("category"); categoryNameElement.setAttribute("value", categoryName); element.addContent(categoryNameElement); } if (!persistentData.getPatterns().isEmpty()) { final Element patternsElement = new Element(PATTERNS_EL_NAME); for (String o : persistentData.getPatterns()) { final Element patternElement = new Element(PATTERN_EL_NAME); patternElement.setAttribute(TEST_CLASS_ATT_NAME, o); patternsElement.addContent(patternElement); } element.addContent(patternsElement); } final String forkMode = getForkMode(); if (!forkMode.equals("none")) { final Element forkModeElement = new Element("fork_mode"); forkModeElement.setAttribute("value", forkMode); element.addContent(forkModeElement); } if (getRepeatCount() != 1) { element.setAttribute("repeat_count", String.valueOf(getRepeatCount())); } final String repeatMode = getRepeatMode(); if (!RepeatCount.ONCE.equals(repeatMode)) { element.setAttribute("repeat_mode", repeatMode); } String[] ids = persistentData.getUniqueIds(); if (ids != null && ids.length > 0) { Element uniqueIds = new Element("uniqueIds"); Arrays.stream(ids).forEach(id -> uniqueIds.addContent(new Element("uniqueId").setAttribute("value", id))); element.addContent(uniqueIds); } String tags = persistentData.getTags(); if (tags != null && !tags.isEmpty()) { Element tagsElement = new Element("tag"); tagsElement.setAttribute("value", tags); element.addContent(tagsElement); } myInputRedirectOptions.writeExternal(element); }