/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.monitoring.system.internal;
/**
* Utility methods.
*
* @author Robert Mischke
*/
public final class SystemMonitoringUtils {
/**
* One hundred percent, as represented internally.
*/
public static final double ONE_HUNDRED_PERCENT_CPU_VALUE = 1.0;
private SystemMonitoringUtils() {}
/**
* @param input a percentage value
* @return NaN if the value was NaN, 0% if <0%, 100% if >100%, otherwise the original value
*/
public static double clampToPercentageOrNAN(double input) {
// apply fallbacks in case the input is invalid or "unusual"
if (Double.isNaN(input)) {
return Double.NaN;
} else if (input < 0.0) {
return 0.0;
} else if (input > ONE_HUNDRED_PERCENT_CPU_VALUE) {
return ONE_HUNDRED_PERCENT_CPU_VALUE;
} else {
return input;
}
}
}