public void writeExternal(final Element element) throws WriteExternalException {
   super.writeExternal(element);
   JavaRunConfigurationExtensionManager.getInstance().writeExternal(this, element);
   writeModule(element);
   DefaultJDOMExternalizer.writeExternal(this, element);
   final Data persistentData = getPersistentData();
   DefaultJDOMExternalizer.writeExternal(persistentData, element);
   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 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);
   }
   final String forkMode = getForkMode();
   if (!forkMode.equals("none")) {
     final Element forkModeElement = new Element("fork_mode");
     forkModeElement.setAttribute("value", forkMode);
     element.addContent(forkModeElement);
   }
   element.addContent(patternsElement);
   PathMacroManager.getInstance(getProject()).collapsePathsRecursively(element);
 }
  @Override
  public void readExternal(Element element) throws InvalidDataException {
    super.readExternal(element);

    setCeylonModule(element.getAttributeValue("ceylon-module"));
    setTopLevelNameFull(element.getAttributeValue("top-level"));
  }
 public void readExternal(final Element element) throws InvalidDataException {
   PathMacroManager.getInstance(getProject()).expandPaths(element);
   super.readExternal(element);
   JavaRunConfigurationExtensionManager.getInstance().readExternal(this, element);
   readModule(element);
   DefaultJDOMExternalizer.readExternal(this, element);
   DefaultJDOMExternalizer.readExternal(getPersistentData(), element);
   EnvironmentVariablesComponent.readExternal(element, getPersistentData().getEnvs());
   final Element patternsElement = element.getChild(PATTERNS_EL_NAME);
   if (patternsElement != null) {
     final Set<String> tests = new LinkedHashSet<String>();
     for (Object o : patternsElement.getChildren(PATTERN_EL_NAME)) {
       Element patternElement = (Element) o;
       tests.add(patternElement.getAttributeValue(TEST_CLASS_ATT_NAME));
     }
     myData.setPatterns(tests);
   }
   final Element forkModeElement = element.getChild("fork_mode");
   if (forkModeElement != null) {
     final String mode = forkModeElement.getAttributeValue("value");
     if (mode != null) {
       setForkMode(mode);
     }
   }
   final Element dirNameElement = element.getChild("dir");
   if (dirNameElement != null) {
     final String dirName = dirNameElement.getAttributeValue("value");
     getPersistentData().setDirName(FileUtil.toSystemDependentName(dirName));
   }
 }
  @Override
  public void writeExternal(Element element) throws WriteExternalException {
    super.writeExternal(element);

    element.setAttribute(
        "ceylon-module", (String) ObjectUtils.defaultIfNull(getCeylonModule(), ""));
    element.setAttribute(
        "top-level", (String) ObjectUtils.defaultIfNull(getTopLevelNameFull(), ""));
  }
 public void writeExternal(Element element) throws WriteExternalException {
   super.writeExternal(element);
   writeModule(element);
   JDOMExternalizer.write(element, "path", scriptPath);
   JDOMExternalizer.write(element, "vmparams", vmParams);
   JDOMExternalizer.write(element, "params", scriptParams);
   JDOMExternalizer.write(element, "workDir", workDir);
   JDOMExternalizer.write(element, "debug", isDebugEnabled);
   JDOMExternalizer.writeMap(element, envs, null, "env");
   PathMacroManager.getInstance(getProject()).collapsePathsRecursively(element);
 }
  @Override
  public void writeExternal(Element element) throws WriteExternalException {
    super.writeExternal(element);
    writeModule(element);

    XmlSerializer.serializeInto(this, element);

    CoverageEnabledConfiguration coverageEnabledConfiguration =
        DotNetCoverageEnabledConfiguration.get(this);
    Element coverageElement = new Element("coverage");
    coverageEnabledConfiguration.writeExternal(coverageElement);
    element.addContent(coverageElement);
  }
  @Override
  public void readExternal(Element element) throws InvalidDataException {
    super.readExternal(element);
    readModule(element);

    XmlSerializer.deserializeInto(this, element);

    Element coverageElement = element.getChild("coverage");
    if (coverageElement != null) {
      CoverageEnabledConfiguration coverageEnabledConfiguration =
          DotNetCoverageEnabledConfiguration.get(this);
      coverageEnabledConfiguration.readExternal(coverageElement);
    }
  }
 public void readExternal(Element element) throws InvalidDataException {
   PathMacroManager.getInstance(getProject()).expandPaths(element);
   super.readExternal(element);
   readModule(element);
   scriptPath = JDOMExternalizer.readString(element, "path");
   vmParams = JDOMExternalizer.readString(element, "vmparams");
   scriptParams = JDOMExternalizer.readString(element, "params");
   final String wrk = JDOMExternalizer.readString(element, "workDir");
   if (!".".equals(wrk)) {
     workDir = wrk;
   }
   isDebugEnabled = Boolean.parseBoolean(JDOMExternalizer.readString(element, "debug"));
   envs.clear();
   JDOMExternalizer.readMap(element, envs, null, "env");
 }