package net.seninp.grammarviz.anomaly; /** * The anomaly discovery algorithm selector. * * @author psenin * */ public enum AnomalyAlgorithm { BRUTEFORCE(0), HOTSAX(1), RRA(2), RRAPRUNED(3), RRASAMPLED(4), EXPERIMENT(5); private final int index; AnomalyAlgorithm(int index) { this.index = index; } public int index() { return index; } public static AnomalyAlgorithm fromValue(int value) { switch (value) { case 0: return AnomalyAlgorithm.BRUTEFORCE; case 1: return AnomalyAlgorithm.HOTSAX; case 2: return AnomalyAlgorithm.RRA; case 3: return AnomalyAlgorithm.RRAPRUNED; case 4: return AnomalyAlgorithm.RRASAMPLED; case 5: return AnomalyAlgorithm.EXPERIMENT; default: throw new RuntimeException("Unknown index:" + value); } } public static AnomalyAlgorithm fromValue(String value) { if (value.equalsIgnoreCase("bruteforce")) { return AnomalyAlgorithm.BRUTEFORCE; } else if (value.equalsIgnoreCase("hotsaxtrie")) { return AnomalyAlgorithm.HOTSAX; } else if (value.equalsIgnoreCase("rra")) { return AnomalyAlgorithm.RRA; } else if (value.equalsIgnoreCase("rrapruned")) { return AnomalyAlgorithm.RRAPRUNED; } else if (value.equalsIgnoreCase("rrasampled")) { return AnomalyAlgorithm.RRASAMPLED; } else if (value.equalsIgnoreCase("experiment")) { return AnomalyAlgorithm.EXPERIMENT; } else { throw new RuntimeException("Unknown index:" + value); } } @Override public String toString() { switch (this.index) { case 0: return "BRUTEFORCE"; case 1: return "HOTSAX"; case 2: return "RRA"; case 3: return "RRAPRUNED"; case 4: return "RRASAMPLED"; case 5: return "EXPERIMENT"; default: throw new RuntimeException("Unknown index"); } } }