/*
 * Copyright (c) 2009 The openGion Project.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 * either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */
package org.opengion.hayabusa.develop;

import java.util.Map;
import java.util.List;

import org.opengion.fukurou.util.StringUtil;
import org.opengion.fukurou.xml.JspParserFilter;

/**
 * コンストラクタに引数で与えられたマスタデータ情報を元に、特定のJSPタグ情報を生成する基底クラス。<br />
 * マスタデータ情報はGF92のNMSYORIカラムの種別毎にJspConvertEntityオブジェクトに事前に準備する必要がある。<br />
 * 
 * 例）<br />
 * JspConvertEntity e = new JspConvertEntity("RESULT");<br />
 * e.setTableName("GF92");<br />
 * e.setColumnName("NMSYORI");<br />
 * 
 * 
 * 継承先のクラスのexecuteメソッドでは、引数のマスタデータ情報からJSPタグの文字列を生成する処理を実装します。
 * 
 * @author Takeshi.Takada
 *
 */
public final class JspCreateFactory {

	private final static String CLS_BASE = "org.opengion.plugin.develop.JspCreate_" ;

	/**
	 * プライベート デフォルトコンストラクタ
	 *
	 * このクラスはファクトリクラスであり、インスタンスの作成を禁止します。
	 * 
	 */
	private JspCreateFactory() {}

	/**
	 * コンストラクタ（メイン）
	 * 
	 * @param key String
	 * @param master Map<String,List<JspConvertEntity>>
	 * @return 新しく作成されたJspParserFilter
	 */
	public static JspParserFilter newInstance( final String key , final Map<String,List<JspConvertEntity>> master ) {

		AbstractJspCreate jspGen = (AbstractJspCreate)StringUtil.newInstance( CLS_BASE + key );

		jspGen.init( master );

		return jspGen ;
	}
}
