/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JTUBPCommon
*   ソースファイル名：JTUBPCommon.java
*	作成者			：FJ
*   日付            ：2011年07月30日
*＜機能概要＞
*   電話手続ＢＰ共通アクセッサー部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2011/07/30	FJ)楠神		新規作成
**	v4.00.00	2012/07/18	FJ)宮本		IT1-2012-0000259
*	v6.00.00	2014/01/07	FJ)黒田		ANK-1761-00-00
*
**********************************************************************/

package com.fujitsu.futurity.bp.custom.common;

import java.util.HashMap;

import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import eo.common.constant.JTUStrConst;
import eo.common.util.JTUStringUtil;


/**
 * 電話手続システムBP共通アクセッサー部品<p>
 * <BR>
 * @author FJ
 */
public class JTUBPCommon extends JCCBPCommon
{

	/**
	 * オブジェクトに値が設定されているか判定します。
	 * <br>
	 * @param arg0 判定するオブジェクト
	 * @return オブジェクトに値が設定されていない場合はtrue
	 */
	public static boolean isNull(Object arg0) 
	{
		return JTUStringUtil.isNull(arg0);
	}

	/**
	 * 文字列を「"」で囲みます。
	 * <br>
	 * @param arg0 対象文字列
	 * @return "対象文字列"
	 */
	public static String getStringToDblQuote(String arg0)
	{
		return JTUStringUtil.getStringToDblQuote(arg0);
	}
	
	/**
	 * 開始位置から終了までの文字列を返す(引数strが空か開始位置より小さい場合、空文字を返却する)
	 * @param str
	 * @param staIdx
	 * @param endLen
	 * @return String
	 */
	public static String getEmptyOrSubString(String str, int staIdx, int endLen)
	{
		return JTUStringUtil.getEmptyOrSubString(str, staIdx, endLen);
	}
	
	/**
	 * 引数の文字列をSJISのバイト配列に変換します。
	 * @param str 変換する文字列
	 * @return SJIS変換されたバイト配列
	 */
	public static byte[] toBytesSJIS(String str) 
	{
		return JDKStirngToBytes.toBytesSJIS(str);
	}
	
	/**
	 * 引数の文字列をバイト配列に変換します。
	 * @param str 変換する文字列
	 * @param encoding 変換するエンコーディング
	 * @return 変換されたバイト配列
	 */
	public static byte[] toBytes(String str, String encoding)
	{
		return JDKStirngToBytes.toBytes(str, encoding);
	}

	/**
	 * 帳票用のCSVカラムを取得する
	 * @param obj
	 * @param topFlg
	 * @return String
	 */
	public static String getChohyoCsvCol(Object obj, boolean topFlg)
	{
		String val = "";
		if(!isNull(obj))
		{
			val = (String)obj;
		}
		
		if(topFlg == false)
		{
			return JTUStrConst.CSV + getStringToDblQuote(val);
		}
		
		return getStringToDblQuote(val);
	}
	
	/**
	 * 電話番号を市外局番、市内局番、加入者番号に分割し、ハイフン編集を行う。
	 * @param handle
	 * @param paramMap
	 * @param tln
	 * @return String
	 * @throws Exception
	 */
	public static String editTln(SessionHandle handle, HashMap<String, Object> paramMap, String tln) throws Exception
	{
		return JTUTelNoUtil.editTln(handle, paramMap, tln);
	}

	/**
	 * EZM0091B012_住所対象番号区画市外局番一覧照会のインプットマップを取得
	 * @param param
	 * @return HashMap<String, Object>
	 * @throws RequestParameterException
	 */
	public static HashMap<String, Object> getEditInMsg_Tln(IRequestParameterReadWrite param) throws RequestParameterException
	{	
		return JTUTelNoUtil.getEditInMsg_Tln(param);
	}
	
	/**
	 * 電話番号（ハイフン編集済み）を分割する。
	 * @param value
	 * @return String[]
	 */
	public static String[] cutTelNo(String value)
	{
		return JTUStringUtil.cutTelNo(value);
	}
	
	/**
	 * ゼロ埋め（左）を行う
	 * @param value
	 * @param len
	 * @return String
	 */
	public static String setzero(String value, int len)
	{
		return JTUStringUtil.setzero(value, len);
	}
	
	/**
	 * 外部連携に使用している申込事業者コード取得部品。(NTT)
	 * @param handle
	 * @param param
	 * @return String[]
	 * @throws Exception
	 */
	public static String[] getMskmJigyoshaInfoNTT(SessionHandle handle, IRequestParameterReadWrite param) throws Exception
	{
		return JTUGetMskmJigyoshaInfo.getMskmJigyoshaInfoNTT(handle, param);
	}
	
	/**
	 * 住所編集パターン01を返します。
	 * @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 JTUStringUtil.getPtn01(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}
	
	/**
	 * 住所編集パターン09を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return String[10]{都道府県名, 市区郡町村名, 大字通称名, 字丁目名, 
	 * 						街区1(20文字), 街区2(10文字), 街区3(10文字), 肩書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 JTUStringUtil.getPtn09(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 JTUStringUtil.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 JTUStringUtil.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 JTUStringUtil.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 JTUStringUtil.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 JTUStringUtil.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 JTUStringUtil.getPtn19(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]{都道府県名+市区町村名,大字通称名+字丁目名+番地号(上20文字),住所補記・建物名+住所補記・部屋番号(上40文字)}
	 */
	public static String[] getPtn24(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm) 
	{
		return JTUStringUtil.getPtn24(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}
	
	/**
	 * 全角カタカナ(ドメイン準拠)から半角カタカナへの変換を行います。
	 * <br>
	 * @param arg0 変換する文字列
	 * @return String 変換された文字列
	 */
	public static String convWideToHalfKatakana(String arg0) 
	{
		return JTUStringUtil.convWideToHalfKatakana(arg0);
	}
	
}
