|
Lookup |
|
1 // joi/4/dictionary/Lookup.java
2 //
3 //
4 // Copyright 2003 Bill Campbell and Ethan Bolker
5
6 /**
7 * On line word lookup.
8 *
9 * @see Dictionary
10 * @see Definition
11 *
12 * @version 4
13 */
14
15 public class Lookup
16 {
17 private static Terminal t = new Terminal();
18 private static Dictionary dictionary = new Dictionary();
19
20 /**
21 * Helper method to fill the dictionary with some simple
22 * Definitions.
23 *
24 * A real Dictionary would live in a file somewhere.
25 */
26
27 private static void fillDictionary()
28 {
29 dictionary.addEntry( "shape",
30 new Definition( "a geometric object in a plane" ) );
31 dictionary.addEntry( "quadrilateral",
32 new Definition( "a polygonal shape with four sides" ) );
33 dictionary.addEntry( "rectangle",
34 new Definition( "a right-angled quadrilateral" ) );
35 dictionary.addEntry( "square",
36 new Definition( "a rectangle having equal sides" ) );
37 }
38
39 /**
40 * Helper method to print the Definition of a single word,
41 * or a message if the word is not in the Dictionary.
42 *
43 * @param word the word whose definition is wanted.
44 */
45
46 private static void printDefinition(String word)
47 {
48 Definition definition = dictionary.getEntry(word);
49 if (definition == null) {
50 t.println("sorry, no definition found for " + word);
51 }
52 else {
53 t.println(definition.toString());
54 }
55 }
56
57 /**
58 * Run the Dictionary lookup.
59 *
60 * Parse command line arguments for words to look up,
61 * "all" prints the whole Dictionary.
62 *
63 * Then prompt for more words, "quit" to finish.
64 *
65 * For example,
66 * <pre>
67 *
68 * %> java Lookup shape square circle
69 * shape:
70 * a geometric object in a plane
71 * square:
72 * a rectangle having equal sides
73 * circle:
74 * sorry, no definition found for circle
75 *
76 * look up words, "quit" to quit
77 * word> rectangle
78 * a right-angled quadrilateral
79 * word> quit
80 * %>
81 * </pre>
82 *
83 * @param args the words that we want looked up, supplied as
84 * command line arguments. If the word "all" is
85 * included, all words are looked up.
86 */
87
88 public static void main( String[] args )
89 {
90 // fill the dictionary (not a big one!)
91 fillDictionary();
92
93 // look up some words
94 String word;
95
96 // words specified on command line
97 for (int i = 0; i < args.length; i++ ) {
98 word = args[i];
99 if (word.equals("all")) {
100 t.println("The whole dictionary (" +
101 dictionary.getSize() + " entries):");
102 t.println("-------------------");
103 t.println(dictionary.toString());
104 t.println("-------------------");
105 }
106 else {
107 t.println(word + ":");
108 printDefinition(word);
109 }
110 }
111
112 // words entered interactively
113 t.println("\nlook up words, \"quit\" to quit");
114 while (true) {
115 word = t.readWord("word> ");
116 if (word.equals("quit")) {
117 break;
118 }
119 printDefinition(word);
120 }
121 }
122 }
123
|
Lookup |
|