1fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville// See README.txt for information and build instructions. 2fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 3fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleimport com.example.tutorial.AddressBookProtos.AddressBook; 4fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleimport com.example.tutorial.AddressBookProtos.Person; 5fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleimport java.io.FileInputStream; 6fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleimport java.io.IOException; 7fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleimport java.io.PrintStream; 8fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 9fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleclass ListPeople { 10fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville // Iterates though all people in the AddressBook and prints info about them. 11fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville static void Print(AddressBook addressBook) { 12fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville for (Person person: addressBook.getPersonList()) { 13fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville System.out.println("Person ID: " + person.getId()); 14fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville System.out.println(" Name: " + person.getName()); 15fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if (person.hasEmail()) { 16fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville System.out.println(" E-mail address: " + person.getEmail()); 17fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville } 18fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 19fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville for (Person.PhoneNumber phoneNumber : person.getPhoneList()) { 20fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville switch (phoneNumber.getType()) { 21fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville case MOBILE: 22fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville System.out.print(" Mobile phone #: "); 23fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville break; 24fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville case HOME: 25fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville System.out.print(" Home phone #: "); 26fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville break; 27fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville case WORK: 28fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville System.out.print(" Work phone #: "); 29fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville break; 30fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville } 31fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville System.out.println(phoneNumber.getNumber()); 32fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville } 33fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville } 34fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville } 35fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 36fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville // Main function: Reads the entire address book from a file and prints all 37fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville // the information inside. 38fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville public static void main(String[] args) throws Exception { 39fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if (args.length != 1) { 40fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville System.err.println("Usage: ListPeople ADDRESS_BOOK_FILE"); 41fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville System.exit(-1); 42fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville } 43fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 44fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville // Read the existing address book. 45fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville AddressBook addressBook = 46fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville AddressBook.parseFrom(new FileInputStream(args[0])); 47fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 48fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville Print(addressBook); 49fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville } 50fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville} 51