/** * Card represents an UW ID card. * Cards are immutable. * * The abstract state of a card is {name, id, background, type, privileges} * where * @specfield name: string // name of person who holds this card * @specfield id: string // 7-digit id of person who holds this card * @specfield background: color // background color of the card * @specfield type: string // the type of person holding the card * @specfield privileges: set // the access privileges of this card * * An example card is {"Fake Name", 01234567, purple, "student", * {cse}} **/ public class Card { /** @effects constructs a new Card c, such that * c.name = name && * c.id = idNumber && * c.background = background && * c.type = type && * c.privileges contains the elements of privileges **/ public Card(String name, String idNumber, Color background, String type, List privileges) { // implementation omitted. } }