/** * CardOffice represents the UW card office. It provides static * methods that allow people to replace their UW cards. */ public class CardOffice { /** * @return a new UW ID card for person. */ public static Card makeCard(UWPerson person) { if (isStudentNumber(person.idNumber())) { List privileges = new ArrayList(); privileges = PersonellOffice.getBuildingAccess(person.idNumber(), PersonellOffice.getDorm(person.idNumber())); return new Card(person.name(), person.idNumber(), Color.PURPLE, "Student", privileges); } else if (isFacultyNumber(person.idNumber())) { List privileges = new ArrayList(); privileges = PersonellOffice.getFacultyPrivileges(person.idNumber()); return new Card(person.name(), person.idNumber(), Color.PURPLE, "Faculty", privileges); } else { throw new RuntimeException("unknown person type."); } } /** * @return true iff idNumber is the id number of a student. */ private static boolean isStudentNumber(String idNumber) { return (idNumber.startsWith("9")); } /** * @return true iff idNumber is the id number of a faculty member. **/ private static boolean isFacultyNumber(String idNumber) { return (idNumber.startsWith("8")); } }