| import 'dart:io'; | |
| import 'dart_tutorial/addressbook.pb.dart'; | |
| import 'dart_tutorial/addressbook.pbenum.dart'; | |
| /// Iterates though all people in the AddressBook and prints info about them. | |
| void printAddressBook(AddressBook addressBook) { | |
| for (var person in addressBook.people) { | |
| print('Person ID: ${person.id}'); | |
| print(' Name: ${person.name}'); | |
| if (person.hasEmail()) { | |
| print(' E-mail address:${person.email}'); | |
| } | |
| for (var phoneNumber in person.phones) { | |
| switch (phoneNumber.type) { | |
| case Person_PhoneType.MOBILE: | |
| print(' Mobile phone #: '); | |
| break; | |
| case Person_PhoneType.HOME: | |
| print(' Home phone #: '); | |
| break; | |
| case Person_PhoneType.WORK: | |
| print(' Work phone #: '); | |
| break; | |
| default: | |
| print(' Unknown phone #: '); | |
| break; | |
| } | |
| print(phoneNumber.number); | |
| } | |
| } | |
| } | |
| /// Reads the entire address book from a file and prints all | |
| /// the information inside. | |
| void main(List<String> arguments) { | |
| if (arguments.length != 1) { | |
| print('Usage: list_person ADDRESS_BOOK_FILE'); | |
| exit(-1); | |
| } | |
| // Read the existing address book. | |
| final file = new File(arguments.first); | |
| final addressBook = new AddressBook.fromBuffer(file.readAsBytesSync()); | |
| printAddressBook(addressBook); | |
| } |