xref: /aosp_15_r20/external/protobuf/examples/list_people.dart (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
1*1b3f573fSAndroid Build Coastguard Workerimport 'dart:io';
2*1b3f573fSAndroid Build Coastguard Worker
3*1b3f573fSAndroid Build Coastguard Workerimport 'dart_tutorial/addressbook.pb.dart';
4*1b3f573fSAndroid Build Coastguard Workerimport 'dart_tutorial/addressbook.pbenum.dart';
5*1b3f573fSAndroid Build Coastguard Worker
6*1b3f573fSAndroid Build Coastguard Worker/// Iterates though all people in the AddressBook and prints info about them.
7*1b3f573fSAndroid Build Coastguard Workervoid printAddressBook(AddressBook addressBook) {
8*1b3f573fSAndroid Build Coastguard Worker  for (var person in addressBook.people) {
9*1b3f573fSAndroid Build Coastguard Worker    print('Person ID: ${person.id}');
10*1b3f573fSAndroid Build Coastguard Worker    print('  Name: ${person.name}');
11*1b3f573fSAndroid Build Coastguard Worker    if (person.hasEmail()) {
12*1b3f573fSAndroid Build Coastguard Worker      print('  E-mail address:${person.email}');
13*1b3f573fSAndroid Build Coastguard Worker    }
14*1b3f573fSAndroid Build Coastguard Worker
15*1b3f573fSAndroid Build Coastguard Worker    for (var phoneNumber in person.phones) {
16*1b3f573fSAndroid Build Coastguard Worker      switch (phoneNumber.type) {
17*1b3f573fSAndroid Build Coastguard Worker        case Person_PhoneType.MOBILE:
18*1b3f573fSAndroid Build Coastguard Worker          print('   Mobile phone #: ');
19*1b3f573fSAndroid Build Coastguard Worker          break;
20*1b3f573fSAndroid Build Coastguard Worker        case Person_PhoneType.HOME:
21*1b3f573fSAndroid Build Coastguard Worker          print('   Home phone #: ');
22*1b3f573fSAndroid Build Coastguard Worker          break;
23*1b3f573fSAndroid Build Coastguard Worker        case Person_PhoneType.WORK:
24*1b3f573fSAndroid Build Coastguard Worker          print('   Work phone #: ');
25*1b3f573fSAndroid Build Coastguard Worker          break;
26*1b3f573fSAndroid Build Coastguard Worker        default:
27*1b3f573fSAndroid Build Coastguard Worker          print('   Unknown phone #: ');
28*1b3f573fSAndroid Build Coastguard Worker          break;
29*1b3f573fSAndroid Build Coastguard Worker      }
30*1b3f573fSAndroid Build Coastguard Worker      print(phoneNumber.number);
31*1b3f573fSAndroid Build Coastguard Worker    }
32*1b3f573fSAndroid Build Coastguard Worker  }
33*1b3f573fSAndroid Build Coastguard Worker}
34*1b3f573fSAndroid Build Coastguard Worker
35*1b3f573fSAndroid Build Coastguard Worker/// Reads the entire address book from a file and prints all
36*1b3f573fSAndroid Build Coastguard Worker/// the information inside.
37*1b3f573fSAndroid Build Coastguard Workervoid main(List<String> arguments) {
38*1b3f573fSAndroid Build Coastguard Worker  if (arguments.length != 1) {
39*1b3f573fSAndroid Build Coastguard Worker    print('Usage: list_person ADDRESS_BOOK_FILE');
40*1b3f573fSAndroid Build Coastguard Worker    exit(-1);
41*1b3f573fSAndroid Build Coastguard Worker  }
42*1b3f573fSAndroid Build Coastguard Worker
43*1b3f573fSAndroid Build Coastguard Worker  // Read the existing address book.
44*1b3f573fSAndroid Build Coastguard Worker  final file = new File(arguments.first);
45*1b3f573fSAndroid Build Coastguard Worker  final addressBook = new AddressBook.fromBuffer(file.readAsBytesSync());
46*1b3f573fSAndroid Build Coastguard Worker  printAddressBook(addressBook);
47*1b3f573fSAndroid Build Coastguard Worker}
48