/*********************************************************************
 * All Rights reserved, Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：JZMCommonUtil
 *   ソースファイル名：JZMCommonUtil.java
 *   作成者          ：富士通
 *   日付            ：2012年03月01日
 *＜機能概要＞
 *   共通機能、共通マスタのアクセッサークラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者      修正内容
 *	v3.00.00    2012/04/23	FJ) 岩元	新規作成
 *	v3.01.00    2012/04/23	FJ) 岩元	【SGY-2012-0000015】住所出力編集部品追加
 *	v3.02.00    2012/04/23	FJ) 宮前	【案件番号不明】フリガナ変換部品追加
 *	v3.03.00    2012/04/23	FJ) 日野	【ANK-0032-00-00】クレジットカード番号チェック部品追加
 *	v3.04.00    2012/04/23	FJ) 宮前	【案件番号不明】マスク部品追加
 *	v3.05.00	2012/06/18	FJ) 早崎	【SGY-2012-0000015】第2弾追加
 *	v4.00.00	2012/11/09	FJ) 岩元	【ANK-1349-00-00】SBMフェムトセル追加対応
 *	v6.00.00	2013/12/27	FJ) 日野	【ANK-1761-00-00】getPtn24追加対応
 *	v48.00.00	2020/01/15	FJ) 張本	【ANK-3795-03-00】見込顧客システム構築対応
 *	v58.00.00	2022/06/24	FJ) 永井	【ANK-3846-17-00】【クレカ】クリアパス→ペイジェント移行
 *	v73.00.00	2024/09/17	FJ) 浅井	【ANK-4427-00-00】NTT卸対応
 *
 **********************************************************************/

package eo.common.util;

import java.util.ArrayList;
import java.util.HashMap;

import eo.common.constant.JZMStrConst;

/**
 * 共通（マスタ）共通機能 共通部品のアクセッサークラスです。<p>
 * <br>
 * @author 富士通
 *
 */
public class JZMCommonUtil extends JPCCommonUtil
{

	/** 半角スペース */
	protected static final String HANKAKU_SPACE = " ";

	/** 全角スペース */
	protected static final String ZENKAKU_SPACE = "　";

	/** 全角ハイフン */
	protected static final String ZENKAKU_HAIHUN = "‐";

	/** ブランク */
	protected static final String BLANK = "";

// v48.00.00 ANK-3795-00-00 ADD START
	/** 都道府県名 */
	private static final String STATE_NM = "state_nm";

	/** 市区町村名 */
	private static final String CITY_NM = "city_nm";

	/** 大字通称名 */
	private static final String OAZTSU_NM = "oaztsu_nm";

	/** 字丁目名 */
	private static final String AZCHO_NM = "azcho_nm";

	/** 都道府県漢字数 */
	private static final String STATE_KANJI_CNT = "state_kanji_cnt";

	/** 市区町村漢字数 */
	private static final String CITY_KANJI_CNT = "city_kanji_cnt";

	/** 漢字数 */
	private static final String KANJI_SUU = "KANJI_SUU";

	/** 住所 */
	private static final String ADDRESS = "ADDRESS";
// v48.00.00 ANK-3795-00-00 ADD END

//ANK-4427-00-00 ADD START
	/** 住所コード */
	private static final String AD_CD = "ad_cd";
	private static final String AD_CD_OUT = "AD_CD";

	/** 都道府県名 */
	private static final String STATE_NM_OUT = "STATE_NM";

	/** 市区町村名 */
	private static final String CITY_NM_OUT = "CITY_NM";

	/** 大字通称名 */
	private static final String OAZTSU_NM_OUT = "OAZTSU_NM";

	/** 字丁目名 */
	private static final String AZCHO_NM_OUT = "AZCHO_NM";
//ANK-4427-00-00 ADD END

	/**
	 * 住所編集パターン01を返します。<BR />
	 * 引数が未入力だった場合nullを返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return 引数の連結値
	 */
	public static String getPtn01(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm) 
	{
		return JZMAdOutputEdit.getPtn01(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン02を返します。<BR />
	 * 番地号が未入力の場合、nullを返します。<BR />
	 * 番地号寄せ分割編集でエラーが発生した場合、nullの配列を返します。、nullを返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return 各項目の間に空白１文字をいれ連結した値
	 */
	public static String getPtn02(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm) 
	{
		return JZMAdOutputEdit.getPtn02(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン03を返します。<BR />
	 * 番地号がnullの場合、nullの配列を返します。
	 * @param bnchigo	番地号	
	 * @param adrttm	住所補記・建物名	
	 * @param adrrm	住所補記・部屋番号	
	 * @param adBnktPst コンテンツ住所分割開始位置	
	 * @return String[3] {住所（都道府県/市区町村）, 住所（上記以外）, 住所（マンション名等）}
	 */
	public static String[] getPtn03(String bnchigo, String adrttm, String adrrm, int adBnktPst)
	{
		return JZMAdOutputEdit.getPtn03(bnchigo, adrttm, adrrm, adBnktPst);
	}

	/**
	 * 住所編集パターン04を返します。<BR />
	 * 都道府県名〜番地号までが未入力だった場合、nullの配列を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[3] {住所（都道府県/市区町村）, 住所（上記以外）, 住所（マンション名等）}
	 */
	public static String[] getPtn04(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn04(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン05を返します。<BR />
	 * 引数が未入力だった場合、nullの配列を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[3] {住所（都道府県/市区町村）, 住所（上記以外）, 住所（マンション名等）, コンテンツ住所分割位置}
	 */
	public static String[] getPtn05(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn05(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン06を返します。<BR />
	 * 番地号が未入力の場合、nullの配列を返します。<BR />
	 * 番地号寄せ分割編集でエラーが発生した場合、nullの配列を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[3] {「都道府県名」, 「市区町村名 + 大字通称名 + 字丁目名 + 番地号」, 「住所補記・建物名 + 住所補記・部屋番号」}
	 */
	public static String[] getPtn06(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn06(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン07を返します。<BR />
	 * 番地号が未入力の場合、nullの配列を返します。
	 * 番地号寄せ分割編集でエラーが発生した場合、nullの配列を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[7] {都道府県名, 市区町村名, 大字通称名, 字丁目名, 番地号, 住所補記・建物名, 住所補記・部屋番号}
	 */
	public static String[] getPtn07(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn07(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン08を返します。<BR />
	 * 引数が未入力だった場合、nullの配列を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[3]{住所1, 住所2, 住所3}
	 */
	public static String[] getPtn08(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn08(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン09を返します。<BR />
	 * 番地号が未入力の場合、nullの配列を返します。<BR />
	 * 番地号寄せ分割編集でエラーが発生した場合、nullの配列を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[10]{{都道府県名漢字, 市区郡町村名漢字, <BR />
	 * 						大字・通称名漢字, 字名・丁目漢字, <BR />
	 * 						街区1(20文字), 街区2(10文字), 街区3(10文字), <BR />
	 * 						肩書1(20文字), 肩書2(10文字), 肩書3(10文字)}}
	 */
	public static String[] getPtn09(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn09(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}


	/**
	 * 住所編集パターン10を返します。<BR />
	 * 番地号が未入力の場合、nullの配列を返します。<BR />
	 * 番地号寄せ分割編集でエラーが発生した場合、nullの配列を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[5]{府県・市区町村, 字, 丁目・番地等, 建物名, 部屋番号}
	 */
	public static String[] getPtn10(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn10(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}


	/**
	 * 住所編集パターン11を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param adrttm 住所補記・建物名
	 * @return String[2]{都道府県名+市区町村名, 住所補記・建物名}
	 */
	public static String[] getPtn11(String stateNm, String cityNm, String adrttm)
	{
		return JZMAdOutputEdit.getPtn11(stateNm, cityNm, adrttm);
	}


	/**
	 * 住所編集パターン12を返します。
	 * @param bnchigo 番地号
	 * @return String[3]{「番地号」を15文字ずつ3分割して出力}
	 */
	public static String[] getPtn12(String bnchigo)
	{
		return JZMAdOutputEdit.getPtn12(bnchigo);
	}


	/**
	 * 住所編集パターン13を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[3]{30文字, 30文字, 75文字}
	 */
	public static String[] getPtn13(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn13(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン14を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return 「都道府県名+市区町村名」+"\r\n"+「大字通称名+字丁目名」+「番地号」+"\r\n"+「住所補記・建物名+住所補記・部屋番号」編集した値
	 */
	public static String getPtn14(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn14(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン15を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[3]{都道府県名+市区町村名,大字通称名+字丁目名+番地号(上20文字),住所補記・建物名+住所補記・部屋番号(上40文字)}
	 */
	public static String[] getPtn15(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn15(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン16を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[3]{都道府県名+市区町村名,大字通称名+字丁目名+番地号,住所補記・建物名+住所補記・部屋番号}
	 */
	public static String[] getPtn16(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn16(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン17を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[10]{都道府県名,市区郡町村名,大字通称名,字丁目名,番地号(上20文字),"","",住所補記・建物名(上20文字),住所補記・部屋番号(上10文字),""}
	 */
	public static String[] getPtn17(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn17(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン18を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[7]{都道府県名+市区郡町村名+大字通称名+字丁目名,番地号(上15文字),"","",住所補記・建物名,住所補記・部屋番号,""}
	 */
	public static String[] getPtn18(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn18(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン19を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[10]{都道府県名,市区郡町村名,大字通称名,字丁目名,番地号(上15文字),"","",住所補記・建物名,住所補記・部屋番号,""}
	 */
	public static String[] getPtn19(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn19(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}


	/**
	 * 住所編集パターン20を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[3]{都道府県名+市区町村名+大字通称名+字丁目名,番地号(上41文字),住所補記・建物名+住所補記・部屋番号}
	 */
	public static String[] getPtn20(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn20(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン21を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[5]
	 */
	public static String[] getPtn21(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn21(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}
	
	/**
	 * 住所編集パターン22を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[5]{府県・市区町村, 字, 丁目・番地等, 建物名, 部屋番号}
	 */
	public static String[] getPtn22(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn22(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン23を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String 引数の連結値
	 */
	public static String getPtn23(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn23(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}

	/**
	 * 住所編集パターン24を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[3]{都道府県名+市区町村名+大字通称名,字丁目名+番地号,住所補記・建物名+住所補記・部屋番号}
	 */
	public static String[] getPtn24(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm)
	{
		return JZMAdOutputEdit.getPtn24(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}
	
	/**
	 * 半角スペースを全角スペースに置換し、前後の全角スペースを削除します。
	 * @param arg0
	 * @return 処理後の文字列
	 */
	protected static String trimSpace(String arg0)
	{
		if(isNull(arg0))
		{
			return arg0;
		}
		return arg0.replace(ZENKAKU_SPACE, HANKAKU_SPACE).trim().replace(HANKAKU_SPACE, ZENKAKU_SPACE);
	}

	/**
	 * 指定された文字列（半角英数字）のフリガナを返します。<BR>
	 * chg_flgでtrueが指定された場合、半角カナをfalseが指定された場合、全角カナを返します。<BR>
	 * @param editing_str 変換対象となる文字列
	 * @param chg_flg true:半角カナを返します。 false:全角カナを返します。
	 * @return フリガナを返します。
	 */
	public static String changeKana(String editing_str, boolean chg_flg)
	{
		return JZMChangeKana.changeKana(editing_str, chg_flg);
	}

	/**
	 * クレジットカード番号チェックを行います。
	 * <br>
	 * @param creCompany クレジット会社コード
	 * @param cardNo クレジットカード番号
	 * @return boolean チェック結果 true：正常、false：不正
	 */
	public static boolean isCreditcardValid(String creCompany, String cardNo)
	{
		return JZMCreditcardValid.isCreditcardValid(creCompany, cardNo);
	}

	/**
	 * マスク化標準処理
	 * マスク編集標準ルールに沿ったマスク化処理を行い、マスク化された文字列を返します。
	 * （マスク文字"*"）
	 * @param trgt マスク対象文字列
	 * @param fixed_flg 固定長フラグ
	 * @return String マスク化した文字列
	 */
	public static String stdMask(String trgt, boolean fixed_flg)
	{
		return JZMFormatForMask.stdMask(trgt, fixed_flg);
	}

	/**
	 * マスク化標準処理（マスク文字"9"）
	 * マスク編集標準ルールに沿ったマスク化処理を行い、マスク化された文字列を返します。
	 * （対象文字列：半角 マスク文字："9"）
	 * @param trgt マスク対象文字列
	 * @param fixed_flg 固定長フラグ
	 * @return String マスク化した文字列
	 */
	public static String stdMaskAt9(String trgt, boolean fixed_flg)
	{
		return JZMFormatForMask.stdMaskAt9(trgt, fixed_flg);
	}

	/**
	 * パスワードマスク化処理
	 * パスワードのマスク化処理（8桁固定）を行い、マスク化された文字列を返します。
	 * （対象文字列：半角 マスク文字："*"）
	 * @return String マスク化した文字列
	 */
	public static String passWdMask()
	{
		return JZMFormatForMask.passWdMask();
	}

	/**
	 * マスク化処理(下4桁残し)
	 * マスク化対象文字列の下4桁以外のマスク化処理を行い、マスク化された文字列を返します。
	 * （対象文字列：半角 マスク文字："*"）
	 * @param trgt マスク対象文字列
	 * @return String マスク化した文字列
	 */
	public static String maskExcRight4(String trgt)
	{
		return JZMFormatForMask.maskExcRight4(trgt);
	}

	/**
	 * マスク化処理（下4桁残し、かつハイフン残し）
	 * マスク化対象文字列の下4桁以外のマスク化処理を行い、マスク化された文字列を返します。
	 * ただし、マスク化対象文字列にハイフンが含まれる場合、それはマスク化しない。
	 * （対象文字列：半角 マスク文字："*"）
	 * @param trgt マスク対象文字列
	 * @return String マスク化した文字列
	 */
	public static String maskExcHypRight4(String trgt)
	{
		return JZMFormatForMask.maskExcHypRight4(trgt);
	}

	/**
	 * クレジットカード番号マスク化標準処理
	 * クレジットカード番号のマスク化標準処理（ハイフンなしでかつすべてマスク化）を行い、
	 * マスク化された文字列を返します。
	 * （対象文字列：半角 マスク文字："*"）
	 * @param trgt マスク対象文字列
	 * @return String マスク化した文字列
	 */
	public static String stdCrecard(String trgt)
	{
		return JZMFormatForMask.stdCrecard(trgt);
	}

	/**
	 * クレジットカード番号マスク化処理（下4桁残し）
	 * クレジットカード番号の下4桁以外のマスク化処理（ハイフンなし）を行い、マスク化
	 * された文字列を返します。
	 * （対象文字列：半角 マスク文字："*"）
	 * @param trgt マスク対象文字列
	 * @return String  マスク化した文字列
	 */
	public static String crecardExcRight4(String trgt)
	{
		return JZMFormatForMask.crecardExcRight4(trgt);
	}

	/**
	 * クレジットカード番号マスク化処理（1ブロック残し）
	 * クレジットカード番号をハイフン編集を行い、ハイフンで区切られた最後尾の文字列以外の
	 * マスク化処理を行い、マスク化された文字列を返します。
	 * ただしハイフンはマスク化しない。また、マスク化対象クレジットカード番号は14,15,16桁とする。
	 * （対象文字列：半角 マスク文字："*"）
	 * @param trgt マスク対象文字列
	 * @return String マスク化した文字列
	 */
	public static String crecardExcBL1(String trgt)
	{
		return JZMFormatForMask.crecardExcBL1(trgt);
	}

	/**
	 * クレジットカード番号マスク化処理（ハイフン残し）
	 * クレジットカード番号をハイフン編集を行い、ハイフン以外のマスク化処理を行い、マスク化
	 * された文字列を返します。ただし、マスク化対象クレジットカード番号は14,15,16桁とする。
	 * （対象文字列：半角 マスク文字："*"）
	 * @param trgt マスク対象文字列
	 * @return String マスク化した文字列
	 */
	public static String crecardExcHyphen(String trgt)
	{
		return JZMFormatForMask.crecardExcHyphen(trgt);
	}

	/**
	 * クレジットカード有効期限マスク化標準処理
	 * クレジットカード有効期限のマスク化処理（すべてマスク化）を行い、マスク化された文字列を
	 * 返します。
	 * （対象文字列：半角 マスク文字："*"）
	 * @param trgt マスク対象文字列
	 * @return String マスク化した文字列
	 */
	public static String stdCrecardKigen(String trgt)
	{
		return JZMFormatForMask.stdCrecardKigen(trgt);
	}

	/**
	 * クレジットカード有効期限マスク化処理（スラッシュ残し）
	 * スラッシュ編集されたクレジットカード有効期限のマスク化処理（すべてマスク化）を行い、
	 * マスク化された文字列を返します。ただしスラッシュはマスク化しない。
	 * （対象文字列：半角 マスク文字："*"）
	 * @param trgt マスク対象文字列
	 * @return String マスク化した文字列
	 */
	public static String crecardKgnExcSlash(String trgt)
	{
		return JZMFormatForMask.crecardKgnExcSlash(trgt);
	}

	/**
	 * クレジットカード有効期限マスク化処理（スラッシュ削除）
	 * スラッシュ編集されたクレジットカード有効期限のマスク化処理（すべてマスク化）を行い、
	 * マスク化された文字列を返します。ただしスラッシュは削除する。
	 * （対象文字列：半角 マスク文字："9"）
	 * @param trgt マスク対象文字列
	 * @return String マスク化した文字列
	 */
	public static String crecardKgnDelSlash(String trgt)
	{
		return JZMFormatForMask.crecardKgnDelSlash(trgt);
	}

// ANK-3846-17-00 ADD START
	/**
	 * クレジットカード番号マスク化処理（上6桁、下4桁残し）
	 * クレジットカード番号の上6桁下4桁以外のマスク化処理（ハイフンなし）を行い、マスク化
	 * された文字列を返します。
	 * マスク化対象クレジットカード番号は14,15,16桁とする。
	 * （対象文字列：半角 マスク文字："*"）
	 * @param trgt マスク対象文字列
	 * @return String  マスク化した文字列
	 */
	public static String crecardExcLeft6Right4(String trgt)
	{
		return JZMFormatForMask.crecardExcLeft6Right4(trgt);
	}
// ANK-3846-17-00 ADD END

	/**
	 * 電話番号マスク化処理（8桁目から4桁）
	 * 電話番号のマスク化処理（8桁目から4桁）を行い、マスク化された文字列を返します。
	 * ただし、国際通話（11桁越）および通常電話+プッシュボタンを押しているものを対象とする。
	 * （対象文字列：半角 マスク文字："*"）
	 * @param trgt マスク対象文字列
	 * @return String マスク化した文字列
	 */
	public static String telNo(String trgt)
	{
		return JZMFormatForMask.telNo(trgt);
	}

	/**
	 * 電話番号マスク化処理（下4桁マスク化）
	 * 電話番号の下4桁のマスク化処理を行い、マスク化された文字列を返します。
	 * ただし、国内固定電話(10桁)、国内固定電話(市外局番なし:5〜8桁)、国内携帯電話(11桁)、
	 * KDDIフリーコールを対象とする。
	 * （対象文字列：半角 マスク文字："*"）
	 * @param trgt マスク対象文字列
	 * @return String マスク化した文字列
	 */
	public static String telNoTrgtRight4(String trgt)
	{
		return JZMFormatForMask.telNoTrgtRight4(trgt);
	}

	/**
	 * 電話番号マスク化処理
	 * 電話番号の種別を判定し、それに合わせたマスク化を行った文字列を返します。
	 * マスク化対象外の電話番号が指定された場合、その電話番号をそのまま返します。
	 * @param trgt マスク対象文字列
	 * @return String マスク化した文字列
	 */
	public static String telNoExt(String trgt)
	{
		return JZMFormatForMask.telNoExt(trgt);
	}

	/**
	 * nullの場合ブランクに置き換える。
	 * @param arg0 対象文字列
	 * @return 置換結果
	 */
	public static String nullToBlank(String arg0)
	{
		return isNull(arg0) ? BLANK : arg0;
	}
	
//ANK-4427-00-00 ADD START
	public static ArrayList editRspDataList(ArrayList dataList)
	{
		return editRspDataList(dataList, null);
	}
//ANK-4427-00-00 ADD END

// v48.00.00 ANK-3795-00-00 ADD START
// （※ZMA001SFLogicより移送）
	/**
	 * 住所変換処理
	 * サービス結果リストから返却項目内容を編集しリストを返却します。<BR/>
	 * リストの返却値
	 *   KANJI_SUU  : 都道府県漢字数と市区町村漢字数の合計値を設定
	 *   ADDRESS    : 都道府県名+市区町村名+大字通称名+字丁目名を設定 ※"丁"、"丁目"は削らない。
	 * @param dataList サービス結果リスト
	 * @return 編集済みサービス結果リスト
	 */
	@SuppressWarnings("unchecked")
//ANK-4427-00-00 MOD START
//	public static ArrayList editRspDataList(ArrayList dataList)
	public static ArrayList editRspDataList(ArrayList dataList, String adrsFlg)
//ANK-4427-00-00 MOD END
	{
		ArrayList rsList = new ArrayList();
		HashMap dataMap = null;

		for (int i = 0; i < dataList.size(); i++)
		{

			HashMap<String, Object> rsMap = new HashMap<String, Object>();

			dataMap = (HashMap)dataList.get(i);

			String stateNm = (String)dataMap.get(STATE_NM);
			String cityNm = (String)dataMap.get(CITY_NM);
			String oaztsuNm = (String)dataMap.get(OAZTSU_NM);
			String azchoNm = (String)dataMap.get(AZCHO_NM);
			// ANK-3612-00-00 MOD START
			//String azchoKana = (String)dataMap.get(AZCHO_KANA);
			// ANK-3612-00-00 MOD END
			String stateKanjiCnt = (String)dataMap.get(STATE_KANJI_CNT);
			String cityKanjiCnt = (String)dataMap.get(CITY_KANJI_CNT);

			// 漢字数の設定
			String kanjiCnt = String.valueOf(Integer.parseInt(stateKanjiCnt) + Integer.parseInt(cityKanjiCnt));

			// 字町目の設定
			if (azchoNm != null && azchoNm.length() != 0)
			{

				// ANK-3612-00-00 MOD START
				//// 字丁目名の最終2文字が（漢字）が"丁目"の場合
				//if(azchoNm.length() > 1 && CHOME.equals(azchoNm.substring(azchoNm.length() - 2)))
				//{
				//	if(azchoNm.length() == 2)
				//	{
				//		azchoNm = BLANK;
				//	}
				//	else
				//	{
				//		
				//		// 字丁目名の最終2文字の"丁目"を削った内容を設定
				//		azchoNm = azchoNm.substring(0, azchoNm.length() - 2);
				//	}
				//}
				//
				//// 字丁目名の最終1文字が"丁"かつ、字丁目カナ名の最終1文字が"-"（半角ハイフン）かつ、"-"の直前が半角数字の場合
				//else if(azchoKana.length() > 1 && CHO.equals(azchoNm.substring(azchoNm.length() - 1))
				//		&& HYPHEN.equals(azchoKana.substring(azchoKana.length() - 1))
				//		&& HalfCharCheck.isEnNumber1Check(azchoKana.substring(azchoKana.length() - 2, azchoKana.length() - 1)))
				//{
				//	if(azchoNm.length() == 1)
				//	{
				//		azchoNm = BLANK;
				//	}
				//	else
				//	{
				//		
				//		// 字丁目名の最終1文字の"丁"を削った内容を設定
				//		azchoNm = azchoNm.substring(0, azchoNm.length() - 1);
				//	}
				//}
				// ANK-3612-00-00 MOD END

			}

			// 住所の設定
			StringBuffer ad = new StringBuffer();
			ad.append(stateNm).append(cityNm).append(oaztsuNm).append(azchoNm);

			rsMap.put(ADDRESS, ad.toString());
			rsMap.put(KANJI_SUU, kanjiCnt);
//ANK-4427-00-00 ADD START
			// NTT卸の場合
			if (JZMStrConst.FLG_ON.equals(adrsFlg)){
				rsMap.put(AD_CD_OUT, (String)dataMap.get(AD_CD));
				rsMap.put(STATE_NM_OUT, (String)dataMap.get(STATE_NM));
				rsMap.put(CITY_NM_OUT, (String)dataMap.get(CITY_NM));
				rsMap.put(OAZTSU_NM_OUT, (String)dataMap.get(OAZTSU_NM));
				rsMap.put(AZCHO_NM_OUT, (String)dataMap.get(AZCHO_NM));
			}
			else{
				rsMap.put(AD_CD_OUT, "");
				rsMap.put(STATE_NM_OUT, "");
				rsMap.put(CITY_NM_OUT, "");
				rsMap.put(OAZTSU_NM_OUT, "");
				rsMap.put(AZCHO_NM_OUT, "");
			}
//ANK-4427-00-00 ADD END

			rsList.add(rsMap);
		}

		return rsList;
	}
// v48.00.00 ANK-3795-00-00 ADD END
	
}
