74bf45f379
The example utilizes native bazel rules (proto_library, cc_proto_library, java_proto_library, java_lite_proto_library) to show how easy it is to build protobuf with bazel's native support. It also makes use of well known types which was not possible until the latest bazel 0.5.4 release and https://github.com/google/protobuf/pull/3594 .
54 lines
1.7 KiB
Java
54 lines
1.7 KiB
Java
// See README.txt for information and build instructions.
|
|
|
|
import com.example.tutorial.AddressBookProtos.AddressBook;
|
|
import com.example.tutorial.AddressBookProtos.Person;
|
|
import java.io.FileInputStream;
|
|
import java.io.IOException;
|
|
import java.io.PrintStream;
|
|
|
|
class ListPeople {
|
|
// Iterates though all people in the AddressBook and prints info about them.
|
|
static void Print(AddressBook addressBook) {
|
|
for (Person person: addressBook.getPeopleList()) {
|
|
System.out.println("Person ID: " + person.getId());
|
|
System.out.println(" Name: " + person.getName());
|
|
if (!person.getEmail().isEmpty()) {
|
|
System.out.println(" E-mail address: " + person.getEmail());
|
|
}
|
|
|
|
for (Person.PhoneNumber phoneNumber : person.getPhonesList()) {
|
|
switch (phoneNumber.getType()) {
|
|
case MOBILE:
|
|
System.out.print(" Mobile phone #: ");
|
|
break;
|
|
case HOME:
|
|
System.out.print(" Home phone #: ");
|
|
break;
|
|
case WORK:
|
|
System.out.print(" Work phone #: ");
|
|
break;
|
|
default:
|
|
System.out.println(" Unknown phone #: ");
|
|
break;
|
|
}
|
|
System.out.println(phoneNumber.getNumber());
|
|
}
|
|
}
|
|
}
|
|
|
|
// Main function: Reads the entire address book from a file and prints all
|
|
// the information inside.
|
|
public static void main(String[] args) throws Exception {
|
|
if (args.length != 1) {
|
|
System.err.println("Usage: ListPeople ADDRESS_BOOK_FILE");
|
|
System.exit(-1);
|
|
}
|
|
|
|
// Read the existing address book.
|
|
AddressBook addressBook =
|
|
AddressBook.parseFrom(new FileInputStream(args[0]));
|
|
|
|
Print(addressBook);
|
|
}
|
|
}
|