package ca.mokhan.comp268; public class Communication implements Comparable { private String name; private Integer ranking; public Communication(String name, Integer ranking) { this.name = name; this.ranking = ranking; } public int compareTo(Communication other) { return this.ranking.compareTo(other.ranking); } public boolean isAtLeast(Communication other) { return this.compareTo(other) >= 0; } @Override public String toString() { return this.name; } public static final Communication Poor = new Communication("poor", 0); public static final Communication Average = new Communication("average", 1); public static final Communication Excellent = new Communication("excellent", 2); public static Communication findBy(String name) { switch (name) { case "poor": return Communication.Poor; case "average": return Communication.Average; case "excellent": return Communication.Excellent; } throw new IllegalArgumentException("Unknown communication type"); } }