package com.intellij.coverage; import com.intellij.execution.configurations.RunConfigurationBase; import com.intellij.execution.configurations.RunnerSettings; import com.intellij.execution.configurations.coverage.CoverageEnabledConfiguration; import com.intellij.execution.process.ProcessHandler; import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.WriteExternalException; import org.jdom.Element; import org.jetbrains.annotations.NotNull; /** * @author traff */ public class CoverageHelper { private CoverageHelper() { } public static void attachToProcess(@NotNull RunConfigurationBase configuration, @NotNull ProcessHandler handler, RunnerSettings runnerSettings) { resetCoverageSuit(configuration); // attach to process termination listener CoverageDataManager.getInstance(configuration.getProject()).attachToProcess(handler, configuration, runnerSettings); } public static void resetCoverageSuit(RunConfigurationBase configuration) { final CoverageEnabledConfiguration covConfig = CoverageEnabledConfiguration.getOrCreate(configuration); // reset coverage suite covConfig.setCurrentCoverageSuite(null); // register new coverage suite final CoverageDataManager coverageDataManager = CoverageDataManager.getInstance(configuration.getProject()); covConfig.setCurrentCoverageSuite(coverageDataManager.addCoverageSuite(covConfig)); } public static void doReadExternal(RunConfigurationBase runConfiguration, Element element) throws InvalidDataException { final CoverageEnabledConfiguration covConf = CoverageEnabledConfiguration.getOrCreate(runConfiguration); covConf.readExternal(element); } public static void doWriteExternal(RunConfigurationBase runConfiguration, Element element) throws WriteExternalException { final CoverageEnabledConfiguration covConf = CoverageEnabledConfiguration.getOrCreate(runConfiguration); covConf.writeExternal(element); } }