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