package hudson.plugins.rubyMetrics.railsStats.model; import java.util.Arrays; import java.util.Comparator; public enum RailsStatsMetrics { LINES, LOC, CLASSES, METHODS, M_C, LOC_M; public String prettyPrint() { switch (this) { case LOC: return this.toString(); case M_C: return slashedPrint(); case LOC_M: return slashedPrint(); } return defaultPrettyPrint(); } private String defaultPrettyPrint() { String prettyString = this.toString().toLowerCase(); return prettyString.substring(0, 1).toUpperCase() + prettyString.substring(1); } private String slashedPrint() { return this.toString().replaceAll("_", "/"); } public static RailsStatsMetrics toRailsStatsMetrics(String name) { try { return RailsStatsMetrics.valueOf(name.toUpperCase().replaceAll("/", "_")); } catch (Exception e) { return null; } } public int getOrder() { return Arrays.asList(RailsStatsMetrics.values()).indexOf(this); } public static class COMPARATOR implements Comparator<RailsStatsMetrics> { public int compare(RailsStatsMetrics o1, RailsStatsMetrics o2) { return new Integer(o1.getOrder()).compareTo(new Integer(o2.getOrder())); } } }