package jp.co.cybec.laxide.util;

/**
 * ユーティリティクラス
 * 
 * @author tokumaru
 *
 */
public class LetsAjaxUtil {
	
	/**
	 * 入力値が数値または数字かどうかを判定し、そうであれば半角数字の文字列を返します。
	 * そうでなければ古い値を返します。
	 * 
	 * @param oldValue 古い入力値
	 * @param value 新しい入力値
	 * @return
	 */
	public static String getDigitValue(String oldValue, String value) {
		if (LetsAjaxUtil.checkDigitString(value)) {
			// 大文字の数字にも対応
			String newValue = String.valueOf(Integer.parseInt(value));
			return newValue;
		} else {
			// 数値でない場合は古い値をリターン
			return oldValue;
		}
	}
	
	/**
	 * 引数の文字列が数値かどうかを判定する
	 * 
	 * @param string
	 * @return 数値かどうかのboolean値
	 */
	public static boolean checkDigitString(String string) {
		try {
			Integer.parseInt(string);
		} catch(NumberFormatException ne) {
			return false;
		}
		
		return true;
	}
	
	/**
	 * 引数の文字列がnullかどうかチェックします。
	 * nullの場合は空文字列をかえします。
	 * nullでない場合は引数の文字列をそのまま返します。
	 * 
	 * @param string
	 * @return 引数がnullの場合は空文字列、そうでない場合は引数の文字列
	 */
	public static String checkNull(String string) {
		if (string == null) {
			return "";
		} 
		return string;
	}
	
	/**
	 * 引数のintegerがnullかどうかチェックします。
	 * nullの場合は0をかえします。
	 * nullでない場合は引数のオブジェクトをそのまま返します。
	 * 
	 * @param string
	 * @return 引数がnullの場合は空文字列、そうでない場合は引数の文字列
	 */
	public static Integer checkNull(Integer integer) {
		if (integer == null) {
			return 0;
		} 
		return integer;
	}
}
