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