/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：JZMejbTEndYmdParts
 *	ソースファイル名：JZMejbTEndYmdParts.java
 *	作成者			：富士通
 *	日付			：2011年04月14日
 *＜機能概要＞
 *	適用終了年月日設定部品クラス
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
*	v1.00		2011/04/14	FJ）岩元	新規作成
 *
 **********************************************************************/

package eo.ejb.common.edit;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.common.util.JCCFrameworkException;
import eo.ejb.common.JZMModelCommon;

/**
 * <p>
 * シーケンス採番部品クラスです。
 * </p>
 * @author 富士通
 */
public class JZMejbOracleSeqParts
{

	/** ツールのブランク設定文字 */
	private static final String TOOL_BLANK = "\"\"";
	/** ツールのブランク設定文字 */
	private static final String BLANK = "";
	/** ツールのnull設定文字 */
	private static final String NULL = "null";
	/** 数値２桁の正規表現 */
	private static final String NUMBER = "[0-9]+";

	
	/**
	 * フォーマット化したOracleシーケンス取得処理です。
	 * フォーマット化したOracleのシーケンス採番値を返却します。
	 * Oracleシーケンスの採番値を取得し、引数の接頭辞の付与と接頭辞と採番値の間のゼロ埋めを行います。
	 * 
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param seqName シーケンス定義名
	 * @param prefix 接頭語
	 * @param keta 桁数
	 * @return 採番値
	 */
	public static String getFormatedNextSeq(CAANMsg inMsg, AgentDispatchContext inContext, String seqName, String prefix, String keta)
	{
		String pfix = null;
		if(TOOL_BLANK.equals(prefix) || prefix == null || NULL.equals(prefix))
		{
			pfix = BLANK;
		}
		else
		{
			pfix = prefix;
		}
		int i = 0;
		//桁数を数値に変換
		if(keta.matches(NUMBER))
		{
			i = Integer.parseInt(keta);
		}
		else
		{
			i = 0;
		}
		try
		{
			return JZMModelCommon.getFormatedNextSeq(seqName, pfix, i);
		}
		catch(JCCFrameworkException ex)
		{
			return null;
		}
	}
}
