// User.pp // // Created by Cristina Videira Lopes on 12/20/94. // // This file contains the set of propagation patterns whose source vertex // is the User class; the operations defined here apply to objects // of this class. These are the current propagation patterns: // // *operation* void assemble(DemNumber* idn, DemString* fns, DemString* lns, // Address* addr, Phones* ph, Status* st) // *operation* void create (DemNumber* idn, DemString* fns, DemString* lns, // DemNumber* ns, DemString* sts, DemNumber* apts, // DemString* citys, DemString* states, DemNumber* zn, // DemNumber* hacn, DemNumber* hphn, // DemNumber* wacn, DemNumber* wphn, // DemNumber* facn, DemNumber* fphn) // *operation* CheckedOut_List* get_checkedoutlist() // *operation* void set_checkedoutlist(CheckedOut_List * col) // *operation* int quota() // *operation* void print_status() // // // *operation* void assemble (DemNumber* idn, DemString* fns, DemString* lns, // Address* addr, Phones* ph, Status* st) // // Assemble a User-object given its parts. // *operation* void assemble (DemNumber* idn, DemString* fns, DemString* lns, Address* addr, Phones* ph, Status* st) *wrapper* User *prefix* (@ this->set_uid (idn); this->set_fname (fns); this->set_lname (lns); this->set_address (addr); this->set_phones (ph); this->set_status (st); @) // // *operation* void create (DemNumber* idn, DemString* fns, DemString* lns, // DemNumber* ns, DemString* sts, DemNumber* apts, // DemString* citys, DemString* states, DemNumber* zn, // DemNumber* hacn, DemNumber* hphn, // DemNumber* wacn, DemNumber* wphn, // DemNumber* facn, DemNumber* fphn) // // Create the several parts of a user-object given generic information. // *operation* void create (DemNumber* idn, DemString* fns, DemString* lns, DemNumber* ns, DemString* sts, DemNumber* apts, DemString* citys, DemString* states, DemNumber* zn, DemNumber* hacn, DemNumber* hphn, DemNumber* wacn, DemNumber* wphn, DemNumber* facn, DemNumber* fphn) *wrapper* User *prefix* (@ Address *addr = new Address; addr->assemble (ns, sts, apts, citys, states, zn); Phones *phs = new Phones; if (hacn != NULL) { HomePhone *hph = new HomePhone; hph->set_area_code (hacn); hph->set_number (hphn); phs->set_homephone (hph); } else phs->set_homephone (NULL); if (wacn != NULL) { WorkPhone *wph = new WorkPhone; wph->set_area_code (wacn); wph->set_number (wphn); phs->set_workphone (wph); } else phs->set_workphone (NULL); if (facn != NULL) { Fax *fph = new Fax; fph->set_area_code (facn); fph->set_number (fphn); phs->set_fax (fph); } else phs->set_fax (NULL); Status *st = new Status; st->set_quota (new DemNumber (10)); st->set_checkedout_list (new CheckedOut_List); this->assemble (idn, fns, lns, addr, phs, st); @) // // operation* CheckedOut_List* get_checkedoutlist() // // return the list of checked out books of this user // *operation* CheckedOut_List* get_checkedoutlist() *traverse* *from* User *to-stop* Status *wrapper* Status *prefix* (@ return_val = checkedout_list; @) // // *operation* void set_checkedoutlist(CheckedOut_List * col) // // Update the list of checked out books of this user // *operation* void set_checkedoutlist(CheckedOut_List * col) *traverse* *from* User *to-stop* Status *wrapper* Status *prefix* (@ this->set_checkedout_list (col); @) // // operation* int quota() // // return the quota of this user // *operation* int quota() *traverse* *from* User *to-stop* Status *wrapper* Status *prefix* (@ return_val = *this->get_quota(); @) // // *operation* void print_status() // // Print the status info, namely the books which are checked out by // this user // -- to be written by you // *operation* void print_status() *wrapper* User *prefix* (@ @)