package org.spotter.ext.detection.ramp; import java.util.Properties; import org.aim.api.exceptions.InstrumentationException; import org.aim.api.exceptions.MeasurementException; import org.aim.api.measurement.dataset.DatasetCollection; import org.aim.description.InstrumentationDescription; import org.spotter.shared.result.model.SpotterResult; /** * Interface for Ramp analysis strategies. * * @author Alexander Wert * */ public interface IRampDetectionStrategy { /** * Sets configuration properties. * * @param problemDetectionConfiguration * properties to set */ void setProblemDetectionConfiguration(Properties problemDetectionConfiguration); /** * Sets the RampDetectionController as parent. * * @param mainDetectionController * parent */ void setMainDetectionController(RampDetectionController mainDetectionController); /** * Executes experiments. * * @throws InstrumentationException * if instrumentaiton fails * @throws MeasurementException * if experiment execution fails */ void executeExperiments() throws InstrumentationException, MeasurementException; /** * Analyzes measured data. * * @param data * data to analyze. * @return SpotterResult */ SpotterResult analyze(DatasetCollection data); /** * * @return estimated experiment duration */ long getExperimentSeriesDuration(); InstrumentationDescription getInstrumentationDescription(); }