1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /*
23 * ident "%Z%%M% %I% %E% SMI"
24 *
25 * Copyright (c) 2001 by Sun Microsystems, Inc.
26 * All rights reserved.
27 */
28
29 package com.sun.dhcpmgr.cli.common;
30
31 import java.io.BufferedReader;
32 import java.io.InputStreamReader;
33 import java.io.IOException;
34
35 /**
36 * This class provides convenient methods to read from System.in.
37 */
38 public class Console
39 {
40 /**
41 * Prompt the user for a yes/no reply and read the reply.
42 * @param prompt the prompt message
43 * @param trueValue the value that represents an affirmative response
44 * @param falseValue the value that represents a negative response
45 * @param defaultReturn indicates whether affirmative or negative is
46 * the default (true means affirmative, false means negative)
47 * @return true if affirmative response, false if negative
48 */
49 public static boolean promptUser(String prompt,
50 String trueValue, String falseValue, boolean defaultReturn) {
51
52 boolean done = false;
53 boolean result = defaultReturn;
54
55 StringBuffer buffer = new StringBuffer(prompt);
56 buffer.append(" (");
57 if (defaultReturn) {
58 buffer.append('[');
59 buffer.append(trueValue);
60 buffer.append("]/");
61 buffer.append(falseValue);
62 } else {
63 buffer.append(trueValue);
64 buffer.append("/[");
65 buffer.append(falseValue);
66 buffer.append(']');
67 }
68 buffer.append("): ");
69
70 while (!done) {
71 System.out.print(buffer.toString());
72 System.out.flush();
73 String line = readLine();
74 if (line == null || line.length() == 0) {
75 done = true;
76 } else if (line.equalsIgnoreCase(trueValue)) {
77 result = true;
78 done = true;
79 } else if (line.equalsIgnoreCase(falseValue)) {
80 result = false;
81 done = true;
82 }
83 }
84
85 return (result);
86
87 } // promptUser
88
89 /**
90 * Read a line from System.in.
91 * @return the line or null in case of exception
92 */
93 public static String readLine() {
94
95 String line = null;
96
97 try {
98 BufferedReader reader =
99 new BufferedReader(new InputStreamReader(System.in));
100
101 line = reader.readLine();
102 } catch (IOException e) {
103 // ignore and return null
104 }
105
106 return (line);
107 } // readLine
108 }