/*
このファイルの中身は、NTT オープンソースライセンス　バージョン 1.0（「本
契約」という）の適用を受けます。
本契約を遵守しない限り、このファイルを使用してはなりません。
本契約のコピーは、次のＵＲＬから入手できます。
【配布サイトのURL】 http://www.oss.ecl.ntt.co.jp/lms/

本契約に基づき頒布されるソフトウェアは、現状のまま、明示又は黙示のあらゆ
る種類の保証なしで、頒布されます。本契約に基づく権利及び制限を律する特定
の文言については、本契約を参照してください。

「オリジナルコード」は、 NTT Cyber Space Laboratories Code です。 
「オリジナルコード」の「初期開発者」は、日本電信電話株式会社です。  
日本電信電話株式会社により創作された部分は、Copyright (C) 2004 
日本電信電話株式会社 です。
全ての権利が留保されます。 
「コントリビュータ」：_____________________________________ 


The contents of this file are subject to the NTT Opensource License
Version 1.0 (the License); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
【配布サイトのURL】 http://www.oss.ecl.ntt.co.jp/lms/

Software distributed under the License is distributed on an AS IS
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.

The Original Code is NTT Cyber Space Laboratories Code .

The Initial Developer of the Original Code is NIPPON TELEGRAPH AND 
TELEPHONE CORPORATION.
Portions created by the NIPPON TELEGRAPH AND TELEPHONE CORPORATION 
are Copyright (C) 2004 NIPPON TELEGRAPH AND TELEPHONE CORPORATION. 
All Rights Reserved.

Contributor(s) ______________________________________.
*/

//
//	LumpPeopleクラス
//			変更履歴
//				2004.07.21	新規作成	工藤 明洋
//
package jp.co.ntt.lms.xmo.LumpInsert;

import jp.co.ntt.lms.xmo.People.PeopleTable;
import jp.co.ntt.lms.xmo.util.DebugLog;
import jp.co.ntt.lms.xmo.util.XMOCheck;

/**
 * LumpUtilクラスです。<BR>
 * このクラスは、一括登録におけるユーティリティ<BR>
 * 的な処理（登録値チェック）を実装します。<BR>
 *
 * @author A.Kudoh
 * @version 0.0.0.1 2004/07/28
 */
public class LumpUtil
{
	private static final Class THIS_CLASS = new LumpUtil().getClass();

	/**
	 * ログインIDをチェックします<BR>
	 * ログインIDに対して半角カナの入力不可、及びバイト数制限、未入力のチェックを行います。
	 * エラー内容はログに書き出されます。
	 * @param String ログインID
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkLoginID(String strLoginID)
	{
		boolean boolRet = true;
		// ログインIDチェック(入力チェックはエラーとする)
		if(strLoginID != null && !strLoginID.equals(""))
		{
			// 半角カナ文字チェック
			if(!checkHanKana(strLoginID))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:半角カナが使用されています ログインID : " + strLoginID,
								DebugLog.MID);
				boolRet = false;
			}
			// バイト数チェック
			if(!XMOCheck.checkLenB(strLoginID, PeopleTable.LOGINID_LENB))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:バイト数が長すぎます ログインID : " + strLoginID,
								DebugLog.MID);
				boolRet = false;
			}
		}
		else
		{
			// @LOG >war >5
			DebugLog.write(THIS_CLASS,
							"一括登録入力チェックエラー:ログインIDが入力されていません",
							DebugLog.MID);

			boolRet = false;
		}
		return boolRet;
	}

	/**
	 * 外部IDをチェックします<BR>
	 * 外部IDに対して半角カナの入力不可、及びバイト数制限、未入力のチェックを行います。
	 * エラー内容はログに書き出されます。
	 * @param String strForeignID 外部ID
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkForeignID(String strForeignID)
	{
		boolean boolRet = true;
		// 外部IDチェック(入力チェックはエラーとする)
		if(strForeignID != null && !strForeignID.equals(""))
		{
			// 半角カナ文字チェック
			if(!checkHanKana(strForeignID))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS.getClass(),
								"一括登録入力チェックエラー:半角カナが使用されています 外部ID : " + strForeignID,
								DebugLog.MID);
				boolRet = false;
			}
			// バイト数チェック
			if(!XMOCheck.checkLenB(strForeignID,  PeopleTable.FOREIGNID_LENB))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS.getClass(),
								"一括登録入力チェックエラー:バイト数が長すぎます 外部ID : " + strForeignID,
								DebugLog.MID);
				boolRet = false;
			}
		}
		else
		{
			// @LOG >war >5
			DebugLog.write(THIS_CLASS.getClass(),
							"一括登録入力チェックエラー:外部IDが入力されていません",
							DebugLog.MID);
			boolRet = false;
		}
		return boolRet;	}

	/**
	 * 名前をチェックします<BR>
	 * 名前に対して半角カナ、カンマの入力不可、及びバイト数制限、未入力の
	 * チェックを行います。エラー内容はログに書き出されます。
	 * @param String strUserName 名前
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkUserName(String strUserName)
	{

		boolean boolRet = true;
		// 名前チェック(入力チェックはエラーとする)
		if(strUserName != null && !strUserName.equals(""))
		{
			// 半角カナ文字チェック
			if(!checkHanKana(strUserName))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS.getClass(),
								"一括登録入力チェックエラー:半角カナが使用されています グループ名（ユーザ名） : " + strUserName,
								DebugLog.MID);
				boolRet = false;
			}
			// カンマチェック
			String[] strList = new String[1];
			strList[0] = ",";
			if(!checkSpChar(strUserName, strList))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS.getClass(),
								"一括登録入力チェックエラー:特殊文字が使用されています グループ名（ユーザ名） : " + strUserName,
								DebugLog.MID);
				boolRet = false;
			}
			// バイト数チェック
			if(!XMOCheck.checkLenB(strUserName, PeopleTable.USERNAME_LENB))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS.getClass(),
								"一括登録入力チェックエラー:バイト数が長すぎます グループ名（ユーザ名） : " + strUserName,
								DebugLog.MID);
				boolRet = false;
			}
		}
		else
		{
			// @LOG >war >5
			DebugLog.write(THIS_CLASS.getClass(),
							"一括登録入力チェックエラー:グループ名（ユーザ名）が入力されていません",
							DebugLog.MID);
			boolRet = false;
		}
		return boolRet;
	}

	/**
	 * パスワードをチェックします<BR>
	 * パスワードに対して半角英数字以外の入力不可、及びバイト数制限、未入力の
	 * チェックを行います。エラー内容はログに書き出されます。
	 * @param String strEncryptPassword パスワード
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkPassword(String strEncryptPassword)
	{
		boolean boolRet = true;
		// パスワードチェック(入力チェックはエラーとする)
		if(strEncryptPassword != null && !strEncryptPassword.equals(""))
		{
			// 半角英数字チェック
			if(!checkNumAlpha(strEncryptPassword))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
							"一括登録入力チェックエラー:英数以外が使用されています パスワード : " + strEncryptPassword,
							DebugLog.MID);

				boolRet = false;
			}
			// バイト数チェック
			if(!XMOCheck.checkLenB(strEncryptPassword, PeopleTable.PASSWORD_LENB))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
							"一括登録入力チェックエラー:バイト数が長すぎます パスワード : " + strEncryptPassword,
							DebugLog.MID);
				boolRet = false;
			}
		}
		else
		{
			// @LOG >war >5
			DebugLog.write(THIS_CLASS,
							"一括登録入力チェックエラー:パスワードが入力されていません",
							DebugLog.MID);
			boolRet = false;
		}
		return boolRet;
	}

	/**
	 * フリガナをチェックします<BR>
	 * フリガナに対して半角カナの入力不可、及びバイト数制限の
	 * チェックを行います。エラー内容はログに書き出されます。
	 * @param String strReadingName パスワード
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkReadingName(String strReadingName)
	{
		boolean boolRet = true;
		// フリガナチェック(入力チェックはエラーとしない)
		if(strReadingName != null && !strReadingName.equals(""))
		{
			// 半角カナ文字チェック
			if(!checkHanKana(strReadingName))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:半角カナが使用されています フリガナ : " + strReadingName,
								DebugLog.MID);
				boolRet = false;
			}
			// バイト数チェック
			if(!XMOCheck.checkLenB(strReadingName, PeopleTable.READINGNAME_LENB))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:バイト数が長すぎます フリガナ : " + strReadingName,
								DebugLog.MID);
				boolRet = false;
			}
		}
		return boolRet;
	}

	/**
	 * 生年月日をチェックします<BR>
	 * 生年月日に対して日付以外の入力不可、及びバイト数制限の
	 * チェックを行います。エラー内容はログに書き出されます。
	 * @param String strBirthday 生年月日
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkBirthday(String strBirthday)
	{
		boolean boolRet = true;
		// 生年月日チェック(入力チェックはエラーとしない)
		if(strBirthday != null && !strBirthday.equals(""))
		{
			// 日付チェック
			if(!XMOCheck.checkDate(strBirthday))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:日付以外が使用されています 生年月日 : " + strBirthday,
								DebugLog.MID);
				boolRet = false;
			}
			else {
				// 1900年から2999年チェック
				int intYear = Integer.parseInt(strBirthday.substring(0, 4));
				if(intYear < 1900 || intYear > 2999)
				{
					// @LOG >war >5
					DebugLog.write(THIS_CLASS,
									"一括登録入力チェックエラー:日付が範囲外です 生年月日 : " + strBirthday,
									DebugLog.MID);
					boolRet = false;
				}
			}
		}
		return boolRet;
	}

	/**
	 * 住所をチェックします<BR>
	 * 住所に対して半角カナの入力不可、及びバイト数制限の
	 * チェックを行います。エラー内容はログに書き出されます。
	 * @param String strContactAddress 住所
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkContactAddress(String strContactAddress)
	{
		boolean boolRet = true;
		// 住所チェック(入力チェックはエラーとしない)
		if(strContactAddress != null && !strContactAddress.equals(""))
		{
			// 半角カナ文字チェック
			if(!checkHanKana(strContactAddress))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:半角カナが使用されています 住所 : " + strContactAddress,
								DebugLog.MID);
				boolRet = false;
			}
			// バイト数チェック
			if(!XMOCheck.checkLenB(strContactAddress, PeopleTable.ADDRESS_LENB))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:バイト数が長すぎます 住所 : " + strContactAddress,
								DebugLog.MID);
				boolRet = false;
			}
		}
		return boolRet;
	}

	/**
	 * メールアドレス１をチェックします<BR>
	 * メールアドレス１に対して半角カナの入力不可、メールフォーマットのチェック
	 * 及びバイト数制限のチェックを行います。エラー内容はログに書き出されます。
	 * @param String strContactEmail メールアドレス１
	 * @param boolean blMailFlag メール送信設定
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkContactEmail(String strContactEmail, boolean blMailFlag)
	{
		boolean boolRet = true;
		// メールアドレス１チェック(入力チェックはエラーとしない 但し、メール送信フラグがonの場合は入力チェックをエラーとする)
		if(strContactEmail != null && !strContactEmail.equals(""))
		{
			// 半角カナ文字チェック
			if(!checkHanKana(strContactEmail))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:半角カナが使用されています Email1 : " + strContactEmail,
								DebugLog.MID);
				boolRet = false;
			}
			// メールフォーマットチェック
			if(!checkMail(strContactEmail))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:メールフォーマットが不正です Email1 : " + strContactEmail,
								DebugLog.MID);
				boolRet = false;
			}
			// バイト数チェック
			if(!XMOCheck.checkLenB(strContactEmail, PeopleTable.EMAIL_LENB))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:バイト数が長すぎます Email1 : " + strContactEmail,
								DebugLog.MID);
				boolRet = false;
			}
		}
		else
		{
			// メール送信設定の場合、メールアドレスが未設定の場合はエラーとする
			if(blMailFlag)
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:メールアドレスがNULLか空白かつメールフラグがtrueです。Email1",
								DebugLog.MID);
				boolRet = false;
			}
		}
		return boolRet;
	}

	/**
	 * メールアドレス２をチェックします<BR>
	 * メールアドレス２に対して半角カナの入力不可、メールフォーマットのチェック
	 * 及びバイト数制限のチェックを行います。エラー内容はログに書き出されます。
	 * @param String strContactEmail2 メールアドレス２
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkContactEmail2(String strContactEmail2)
	{
		boolean boolRet = true;
		// メールアドレス２チェック(入力チェックはエラーとしない)
		if(strContactEmail2 != null && !strContactEmail2.equals(""))
		{
			// 半角カナ文字チェック
			if(!checkHanKana(strContactEmail2))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:半角カナが使用されています Email2 : " + strContactEmail2,
								DebugLog.MID);
				boolRet = false;
			}
			// メールフォーマットチェック
			if(!checkMail(strContactEmail2))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:メールフォーマットが不正です Email2 : " + strContactEmail2,
								DebugLog.MID);
				boolRet = false;
			}
			// バイト数チェック
			if(!XMOCheck.checkLenB(strContactEmail2, PeopleTable.EMAIL2_LENB))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:バイト数が長すぎます Email2 : " + strContactEmail2,
								DebugLog.MID);
				boolRet = false;
			}
		}
		return boolRet;
	}

	/**
	 * 電話番号をチェックします<BR>
	 * 電話番号に対して半角カナ、全角文字の入力不可、及びバイト数制限の
	 * チェックを行います。エラー内容はログに書き出されます。
	 * @param String strContactTel 電話番号
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkContactTel(String strContactTel)
	{
		boolean boolRet = true;
		// 電話番号チェック(入力チェックはエラーとしない)
		if(strContactTel != null && !strContactTel.equals(""))
		{
			// 半角カナ文字チェック
			if(!checkHanKana(strContactTel))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:半角カナが使用されています 電話番号 : " + strContactTel,
								DebugLog.MID);
				boolRet = false;
			}
			// 全角文字チェック
			if(!checkZen(strContactTel))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:全角が使用されています 電話番号 : " + strContactTel,
								DebugLog.MID);
				boolRet = false;
			}
			// バイト数チェック
			if(!XMOCheck.checkLenB(strContactTel, PeopleTable.TEL_LENB))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:バイト数が長すぎます 電話番号 : " + strContactTel,
								DebugLog.MID);
				boolRet = false;
			}
		}
		return boolRet;
	}

	/**
	 * コメントをチェックします<BR>
	 * コメントに対して半角カナの入力不可、及びバイト数制限の
	 * チェックを行います。エラー内容はログに書き出されます。
	 * @param String strCustomMsgDir コメント
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkCustomMsgDir(String strCustomMsgDir)
	{
		boolean boolRet = true;
		// コメントチェック(入力チェックはエラーとしない)
		if(strCustomMsgDir != null && !strCustomMsgDir.equals(""))
		{
			// 半角カナ文字チェック
			if(!checkHanKana(strCustomMsgDir))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:半角カナが使用されています コメント : " + strCustomMsgDir,
								DebugLog.MID);
				boolRet = false;
			}
			// バイト数チェック
			if(!XMOCheck.checkLenB(strCustomMsgDir, PeopleTable.CUSTOM_LENB))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:バイト数が長すぎます コメント : " + strCustomMsgDir,
								DebugLog.MID);
				boolRet = false;
			}
		}
		return boolRet;
	}

	/**
	 * ADユーザIDをチェックします<BR>
	 * ADユーザIDに対して半角カナの入力不可、及びバイト数制限の
	 * チェックを行います。エラー内容はログに書き出されます。
	 * @param String strADUserID ADユーザID
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkADUserID(String strADUserID)
	{
		boolean boolRet = true;
		// ADユーザIDチェック(入力チェックはエラーとしない)
		if(strADUserID != null && !strADUserID.equals(""))
		{
			// 半角カナ文字チェック
			if(!checkHanKana(strADUserID))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:半角カナが使用されています ADユーザID : " + strADUserID,
								DebugLog.MID);
				boolRet = false;
			}
			// バイト数チェック
			if(!XMOCheck.checkLenB(strADUserID, PeopleTable.ADUSERID_LENB))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:バイト数が長すぎます ADユーザID : " + strADUserID,
								DebugLog.MID);
				boolRet = false;
			}
		}
		return boolRet;
	}

	/**
	 * オブジェクトIDをチェックします<BR>
	 * オブジェクトIDに対して半角カナの入力不可、及びバイト数制限の
	 * チェックを行います。エラー内容はログに書き出されます。
	 * @param String strOid オブジェクトID
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkOid(String strOid)
	{
		boolean boolRet = true;
		// オブジェクトIDチェック(入力チェックはエラーとする)
		if(strOid != null && !strOid.equals(""))
		{
			// 半角カナ文字チェック
			if(!checkHanKana(strOid))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:半角カナが使用されています オブジェクトID : " + strOid,
								DebugLog.MID);
				boolRet = false;
			}
			// バイト数チェック
			if(!XMOCheck.checkLenB(strOid, PeopleTable.OID_LENB))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:バイト数が長すぎます オブジェクトID : " + strOid,
								DebugLog.MID);
				boolRet = false;
			}
		}
		else
		{
			// @LOG >war >5
			DebugLog.write(THIS_CLASS,
							"一括登録入力チェック:オブジェクトIDが入力されていませんので外部IDを使用します",
							DebugLog.MID);
			boolRet = false;
		}
		return boolRet;
	}

	/**
	 * DNをチェックします<BR>
	 * DNに対して半角カナの入力不可、及びバイト数制限の
	 * チェックを行います。エラー内容はログに書き出されます。
	 * @param String strADDN ADユーザID
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkADDN(String strADDN)
	{
		boolean boolRet = true;
		// DNチェック(入力チェックはエラーとしない)
		if(strADDN != null && !strADDN.equals(""))
		{
			// 半角カナ文字チェック
			if(!checkHanKana(strADDN))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:半角カナが使用されています DN : " + strADDN,
								DebugLog.MID);
				boolRet = false;
			}
			// バイト数チェック
			if(!XMOCheck.checkLenB(strADDN, PeopleTable.ADDN_LENB))
			{
				// @LOG >war >5
				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:バイト数が長すぎます DN : " + strADDN,
								DebugLog.MID);
				boolRet = false;
			}
		}
		return boolRet;
	}

	/**
	 * 性別をチェックします<BR>
	 * 性別に対して不正値の入力不可をチェックします。
	 * エラー内容はログに書き出されます。
	 * @param String strSex 性別　男性：("1"）、女性：（"2"）
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkSex(String strSex)
	{
		boolean boolRet = true;
		// 性別が不正ならばデフォルト値を設定
		if(strSex == null || (!strSex.equals("1") && !strSex.equals("2")))
		{
			// @LOG >war >5
			DebugLog.write(THIS_CLASS,
							"一括登録入力チェックエラー:性別が不正です 性別 : " + strSex,
							DebugLog.MID);
			boolRet = false;
		}
		return boolRet;
	}

	/**
	 * 半角カナをチェックします<BR>
	 * @param String チェック文字列
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkHanKana(String strLen)
	{
		String strHanKana="｡｢｣､･ｦｧｨｩｪｫｬｭｮｯｰｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝﾞﾟ";
		for(int i = 0; i < strLen.length(); i++)
		{
			String strOne = strLen.substring(i, i + 1);
			if(strHanKana.indexOf(strOne) != -1)
			{
				return false;
			}
		}
		return true;
	}

	/**
	 * 特殊文字をチェックします。
	 * @param String チェック文字列
	 * @param String[] 特殊文字配列
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkSpChar(String strLen, String[] strList)
	{
		for(int i = 0; i < strList.length; i++)
		{
			String strOne = strList[i];
			if(strLen.indexOf(strOne) != -1)
			{
				return false;
			}
		}
		return true;
	}

	/**
	 * 半角英数字かどうかをチェックします。
	 * @param String チェック文字列
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkNumAlpha(String strLen)
	{
		for(int i=0; i < strLen.length(); i++)
		{
			char cLen=strLen.charAt(i);
			if(((cLen < 'a') || (cLen > 'z')) &&
			   ((cLen < 'A') || (cLen > 'Z')) &&
			   ((cLen < '0') || (cLen > '9')))
			{
				return false;
			}
		}
		return true;
	}

	/**
	 * メールのフォーマットをチェックします。
	 * @param String チェック文字列
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkMail(String strLen)
	{
		int intLength = strLen.length();
		String strLastChar = strLen.substring(intLength - 1);
		// 最後の文字が"@"あるいは"."ならば
		if(strLastChar.equals("@") || strLastChar.equals("."))
		{
			return false;
		}
		int intIndex = strLen.indexOf("@");
		String strAcount = "";
		String strDomain = "";
		// @マークの前部が1文字以上かつ@の後部が1文字以上ならば
		if(intIndex > 0 && intIndex != strLen.length() - 1)
		{
			strDomain = strLen.substring(intIndex + 1);
			int intDomainIndex = strDomain.indexOf(".");
			// ドメインに"."がなかった場合か"."から開始した場合
			if(intDomainIndex == -1 || intDomainIndex == 0)
			{
				return false;
			}
		}
		else
		{
			return false;
		}
		return true;
	}

	/**
	 * 全角文字の存在をチェックします。
	 * @param String strLen チェック文字列
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkZen(String strLen)
	{
		int intLen = strLen.length();
		byte[] byteLen = strLen.getBytes();
		if(intLen < byteLen.length)
		{
			return false;
		}
		return true;
	}

	/**
	 * キー項目の存在をチェックします。<BR>
	 * 検索キーとなるオブジェクトID、もしくは外部IDの存在をチェックします。
	 * @param String strOid オブジェクトID
	 * @param String strForeignID 外部ID
	 * @return boolean 0:不正、1:正常
	 */
	public static boolean checkExistKey(String strOid, String strForeignID)
	{
		boolean boolRet = true;
		// オブジェクトIDの存在チェックを行う
		if (checkOid(strOid) == false) {
			// 存在しない場合、外部IDの存在チェックを行う
			if (checkForeignID(strForeignID) == false) {

				StringBuffer sbuf = new StringBuffer();
				sbuf.append("［");
				sbuf.append("オブジェクトID：");
				sbuf.append(strOid);
				sbuf.append("　外部ID：");
				sbuf.append(strForeignID);
				sbuf.append("］");

				DebugLog.write(THIS_CLASS,
								"一括登録入力チェックエラー:キー項目が不正です。 キー：" + sbuf.toString(),
								DebugLog.MID);
				boolRet = false;
			}
		}
		return boolRet;
	}

}