blob: 11c3b6db427830ec7371f240c8e04cc067b2f16c [file] [log] [blame]
/*
* User: anna
* Date: 13-Feb-2008
*/
package com.intellij.coverage;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.rt.coverage.data.ProjectData;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File;
public abstract class CoverageRunner {
public static final ExtensionPointName<CoverageRunner> EP_NAME = ExtensionPointName.create("com.intellij.coverageRunner");
public abstract ProjectData loadCoverageData(@NotNull final File sessionDataFile, @Nullable final CoverageSuite baseCoverageSuite);
public abstract String getPresentableName();
@NonNls
public abstract String getId();
@NonNls
public abstract String getDataFileExtension();
public abstract boolean acceptsCoverageEngine(@NotNull final CoverageEngine engine);
public static <T extends CoverageRunner> T getInstance(@NotNull Class<T> coverageRunnerClass) {
for (CoverageRunner coverageRunner : Extensions.getExtensions(EP_NAME)) {
if (coverageRunnerClass.isInstance(coverageRunner)) {
return coverageRunnerClass.cast(coverageRunner);
}
}
assert false;
return null;
}
public boolean isCoverageByTestApplicable() {
return false;
}
}