package org.itscool.commons.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * コンソールからの入出力を行うクラスです
 * @author KANO
 * @since jdk1.4.1
 * @version 1.00A 2004/11/1
*/
public class DataInUtil {
    // クラス変数
    public static final int INTERROR = -2147483648; // askInt()のエラー値
    
    /** 
     * メッセージを表示して文字列を入力させ、結果の文字列を返します
     * @param message コンソールに出力するメッセージです
     * @return コンソールに入力されたメッセージを返します
    */
    public static String askString(String message) {
        // 画面からの入力
        try {
            System.out.print(message + ">");
            System.out.flush();
            String line = new BufferedReader(new InputStreamReader(System.in))
                    .readLine();
            return line;
        } catch (IOException ioe) {
            System.out.println("入力できませんでした。");
            return null;
        }
    }

    /**
     * メッセージを表示して文字列を入力させ、結果の文字列を整数型に
     * 変換して返します
     * @param message コンソールに出力するメッセージです
     * @return コンソールに入力された数値を返します
    */
    public static int askInt(String message) {
        try {
            return Integer.parseInt(askString(message)); // String をint に変換
        } catch (NumberFormatException nfe) {
            System.out.println("数字に変換できません。");
            return INTERROR;
        }
    }

    /** 
     * メッセージを表示して文字列を入力させ、結果の文字列を論理型に
     * 変換して返します 
     * @param message コンソールに出力するメッセージです
     * @return コンソールに入力された文字の比較結果をbooleanで返します
    */
    public static boolean askBoolean(String message, String t) {
        return askString(message).toUpperCase().equals(t.toUpperCase());
    }
}
