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