~ubuntu-branches/ubuntu/oneiric/mozc/oneiric

« back to all changes in this revision

Viewing changes to protobuf/files/examples/AddPerson.java

  • Committer: Bazaar Package Importer
  • Author(s): Nobuhiro Iwamatsu
  • Date: 2010-07-14 03:26:47 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100714032647-13qjisj6m8cm8jdx
Tags: 0.12.410.102-1
* New upstream release (Closes: #588971).
  - Add mozc-server, mozc-utils-gui and scim-mozc packages.
* Update debian/rules.
  Add --gypdir option to build_mozc.py.
* Update debian/control.
  - Bumped standards-version to 3.9.0.
  - Update description.
* Add mozc icon (Closes: #588972).
* Add patch which revises issue 18.
  ibus_mozc_issue18.patch
* kFreeBSD build support.
  support_kfreebsd.patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// See README.txt for information and build instructions.
2
 
 
3
 
import com.example.tutorial.AddressBookProtos.AddressBook;
4
 
import com.example.tutorial.AddressBookProtos.Person;
5
 
import java.io.BufferedReader;
6
 
import java.io.FileInputStream;
7
 
import java.io.FileNotFoundException;
8
 
import java.io.FileOutputStream;
9
 
import java.io.InputStreamReader;
10
 
import java.io.IOException;
11
 
import java.io.PrintStream;
12
 
 
13
 
class AddPerson {
14
 
  // This function fills in a Person message based on user input.
15
 
  static Person PromptForAddress(BufferedReader stdin,
16
 
                                 PrintStream stdout) throws IOException {
17
 
    Person.Builder person = Person.newBuilder();
18
 
 
19
 
    stdout.print("Enter person ID: ");
20
 
    person.setId(Integer.valueOf(stdin.readLine()));
21
 
 
22
 
    stdout.print("Enter name: ");
23
 
    person.setName(stdin.readLine());
24
 
 
25
 
    stdout.print("Enter email address (blank for none): ");
26
 
    String email = stdin.readLine();
27
 
    if (email.length() > 0) {
28
 
      person.setEmail(email);
29
 
    }
30
 
 
31
 
    while (true) {
32
 
      stdout.print("Enter a phone number (or leave blank to finish): ");
33
 
      String number = stdin.readLine();
34
 
      if (number.length() == 0) {
35
 
        break;
36
 
      }
37
 
 
38
 
      Person.PhoneNumber.Builder phoneNumber =
39
 
        Person.PhoneNumber.newBuilder().setNumber(number);
40
 
 
41
 
      stdout.print("Is this a mobile, home, or work phone? ");
42
 
      String type = stdin.readLine();
43
 
      if (type.equals("mobile")) {
44
 
        phoneNumber.setType(Person.PhoneType.MOBILE);
45
 
      } else if (type.equals("home")) {
46
 
        phoneNumber.setType(Person.PhoneType.HOME);
47
 
      } else if (type.equals("work")) {
48
 
        phoneNumber.setType(Person.PhoneType.WORK);
49
 
      } else {
50
 
        stdout.println("Unknown phone type.  Using default.");
51
 
      }
52
 
 
53
 
      person.addPhone(phoneNumber);
54
 
    }
55
 
 
56
 
    return person.build();
57
 
  }
58
 
 
59
 
  // Main function:  Reads the entire address book from a file,
60
 
  //   adds one person based on user input, then writes it back out to the same
61
 
  //   file.
62
 
  public static void main(String[] args) throws Exception {
63
 
    if (args.length != 1) {
64
 
      System.err.println("Usage:  AddPerson ADDRESS_BOOK_FILE");
65
 
      System.exit(-1);
66
 
    }
67
 
 
68
 
    AddressBook.Builder addressBook = AddressBook.newBuilder();
69
 
 
70
 
    // Read the existing address book.
71
 
    try {
72
 
      FileInputStream input = new FileInputStream(args[0]);
73
 
      addressBook.mergeFrom(input);
74
 
      input.close();
75
 
    } catch (FileNotFoundException e) {
76
 
      System.out.println(args[0] + ": File not found.  Creating a new file.");
77
 
    }
78
 
 
79
 
    // Add an address.
80
 
    addressBook.addPerson(
81
 
      PromptForAddress(new BufferedReader(new InputStreamReader(System.in)),
82
 
                       System.out));
83
 
 
84
 
    // Write the new address book back to disk.
85
 
    FileOutputStream output = new FileOutputStream(args[0]);
86
 
    addressBook.build().writeTo(output);
87
 
    output.close();
88
 
  }
89
 
}