package eu.choreos.monitoring.platform.daemon; public class SingleThreshold extends AbstractThreshold { public static final int MIN = 1; public static final int EQUALS = 2; public static final int MAX = 3; public static final int DOWN = 4; private double limitValue; public SingleThreshold(String name, int comparison, double value) { super(name, comparison); this.limitValue = value; this.lastMeasurement = 0; } @Override protected Boolean isWithinBoundaries(Double metricValue) { lastMeasurement = metricValue; switch (comparison) { case MIN: return (lastMeasurement >= limitValue); case MAX: return (lastMeasurement <= limitValue); case EQUALS: case DOWN: return (lastMeasurement == limitValue); default: } return false; } @Override protected String getComparisonAsString() { switch (comparison) { case MIN: return ">="; case MAX: return "<="; case EQUALS: return "=="; default: return "undefined"; } } public String toString() { return "Triggered: " + name + " " + getComparisonAsString() + " " + limitValue + ". Measured: " + lastMeasurement ; } @Override public String toEventRuleData() { return this.toString(); } }