1 /* 
2  * Copyright 2005 Paul Hinds
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.tp23.antinstaller.renderer.text;
17
18import java.io.BufferedReader;
19import java.io.IOException;
20import java.io.InputStreamReader;
21
22import org.tp23.antinstaller.InstallerContext;
23import org.tp23.antinstaller.renderer.MessageRenderer;
24
25/**
26 *
27 * <p>Render user messages to the console </p>
28 * <p> </p>
29 * <p>Copyright: Copyright (c) 2004</p>
30 * <p>Company: tp23</p>
31 * @author Paul Hinds
32 * @version $Id: TextMessageRenderer.java,v 1.3 2007/01/09 22:41:40 teknopaul Exp $
33 */
34public class TextMessageRenderer
35    implements MessageRenderer {
36
37    private InstallerContext ctx = null;
38
39    public TextMessageRenderer() {
40    }
41
42    public void setInstallerContext(InstallerContext ctx){
43        this.ctx = ctx;
44    }
45    public void printMessage(String message){
46        System.out.println(message);
47    }
48
49    public boolean prompt(String message){
50        try {
51            System.out.println(message);
52            // FIXME need to read directly from InputStreamReader and stop at first \n or \r
53            // test the following
54//          InputStreamReader isr = new InputStreamReader(System.in);           
55//          int intChar = -1;
56//          StringBuffer sb = new StringBuffer();
57//          while((intChar = isr.read()) != -1 && intChar != '\n' && intChar != '\r'){
58//              sb.append((char)intChar);
59//          }
60//          String line = sb.toString();
61
62            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
63            String line = reader.readLine();
64            if (line != null && !line.equals("") && line.trim().length() > 0) {
65                return Character.toUpperCase(line.trim().charAt(0)) == 'Y' ||
66                    Character.toUpperCase(line.trim().charAt(0)) == 'T' ;
67            }
68            return false;
69        }
70        catch (IOException ex) {
71            throw new RuntimeException("IOException", ex);
72        }
73    }
74}
75