package betsy.common.timeouts.calibration;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Objects;
import betsy.common.timeouts.timeout.Timeouts;
/**
* @author Christoph broeker
* @version 1.0
*/
public class CalibrationTimeoutRepository {
public static final CalibrationTimeouts CALIBRATION_TIMEOUTS = new CalibrationTimeouts();
/**
* This method returns all timeouts as {@link CalibrationTimeout}.
*
* @return A {@link HashMap} with the key of {@link CalibrationTimeout} and the {@link CalibrationTimeout}.
*/
public static HashMap<String, CalibrationTimeout> getAllCalibrationTimeouts() {
return CALIBRATION_TIMEOUTS.getAllCalibrationTimeouts();
}
/**
* With this method it is possible to add a {@link CalibrationTimeout} to the repository.
*
* @param calibrationTimeout The calibrationTime to add to the repository.
*/
public static void addCalibrationTimeout(CalibrationTimeout calibrationTimeout) {
CALIBRATION_TIMEOUTS.addCalibrationTimeout(Objects.requireNonNull(calibrationTimeout, "The calibrationTimeout can't be null."));
}
/**
* This method writes all given {@link CalibrationTimeout} to the properties, if the {@link CalibrationTimeout} exists in the {@link Timeouts}.
*/
public static void writeAllCalibrationTimeoutsToProperties() {
CALIBRATION_TIMEOUTS.writeAllCalibrationTimeoutsToProperties();
}
/**
* Writes the the values of the {@link CalibrationTimeout} in the {@link CalibrationTimeoutRepository} to a csv file.
*
* @param csv The csv path, where the timeout values should be saved.
* @param numberOfDuration The number of calibration iterations.
*/
public static void writeToCSV(Path csv, int numberOfDuration) {
CALIBRATION_TIMEOUTS.writeToCSV(Objects.requireNonNull(csv, "The csv can't be null."), Objects.requireNonNull(numberOfDuration, "The numberOfDuration can't be null."));
}
/**
* Writes the the values of the {@link CalibrationTimeout} in the {@link CalibrationTimeoutRepository} to a csv file.
*/
public static void writeToCSV() {
CALIBRATION_TIMEOUTS.writeToCSV();
}
/**
* This method removes all values from the repository.
*/
public static void clean(){
CALIBRATION_TIMEOUTS.clean();
}
/**
* This method returns all CalibrationTimeouts once only.
*
* @return A {@link HashMap} with the timeouts.
*/
public static HashMap<String, CalibrationTimeout> getAllNonRedundantTimeouts() {
return CALIBRATION_TIMEOUTS.getAllNonRedundantTimeouts();
}
}