package scrum.client.risks; import ilarkesto.gwt.client.LabelProvider; public class RiskComputer { public static String getProbabilityLabel(String probability) { if (probability == null) return null; return getProbabilityLabel(Integer.parseInt(probability)); } public static String getProbabilityLabel(int probability) { if (probability > 80) return "very likely"; if (probability > 60) return "likely"; if (probability > 40) return "possible"; if (probability > 20) return "unlikely"; return "very unlikely"; } public static String getImpactLabel(String impact) { if (impact == null) return null; return getImpactLabel(Integer.parseInt(impact)); } public static String getImpactLabel(int impact) { if (impact > 80) return "extreme"; if (impact > 60) return "substantial"; if (impact > 40) return "medium"; if (impact > 20) return "minor"; return "negligible"; } public static int getPriority(int impact, int probability) { if (probability > 80) { if (impact > 80) return 4; if (impact > 60) return 4; if (impact > 40) return 2; if (impact > 20) return 1; return 0; } if (probability > 60) { if (impact > 80) return 3; if (impact > 60) return 2; if (impact > 40) return 1; if (impact > 20) return 0; return 0; } if (probability > 40) { if (impact > 80) return 2; if (impact > 60) return 1; if (impact > 40) return 0; if (impact > 20) return 0; return -1; } if (probability > 20) { if (impact > 80) return 1; if (impact > 60) return 0; if (impact > 40) return 0; if (impact > 20) return -1; return -2; } if (impact > 80) return 0; if (impact > 60) return 0; if (impact > 40) return -1; if (impact > 20) return -2; return -2; } public static String getPriorityLabel(int impact, int probability) { int priority = getPriority(impact, probability); if (priority >= 4) return "severe"; if (priority == 3) return "very high"; if (priority == 2) return "high"; if (priority == 1) return "significant"; if (priority == 0) return "moderate"; if (priority == -1) return "low"; return "very low"; // priority <= -2 } public static LabelProvider<Integer> IMPACT_LABEL_PROVIDER = new LabelProvider<Integer>() { public String getLabel(Integer impact) { if (impact == null) return null; return getImpactLabel(impact); } }; public static LabelProvider<Integer> PROBABILITY_LABEL_PROVIDER = new LabelProvider<Integer>() { public String getLabel(Integer probability) { if (probability == null) return null; return getProbabilityLabel(probability); } }; }