/*
このファイルの中身は、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) ______________________________________.
*/

/**
 * 
 * アップロードパラメータクラス
 *
 * 	変更履歴
 *		2004.01.08 新規作成 五木田
 **/
package jp.co.ntt.lms.xmo.util;

import java.util.StringTokenizer;
import java.util.Hashtable;

public class UploadParam
{
	// 静的変数
	private static final String FORM_NAME    = "name";
	private static final String FILE_NAME    = "filename";
	
	// 動的変数
	String    m_strFormName;
	String    m_strFileName;
	String    m_strContentType;
	String    m_MainData;
	Hashtable m_htbParams = new Hashtable();
	
	/**
	 * コンストラクタ
	 **/
	public UploadParam()
	{
		;
	}
	
	/**
	 * メインデータ設定関数<BR>
	 * メインデータ部の値を設定する。<BR>
	 *
	 * @param strFile メインデータ部
	 * @return void
	 **/
	public void setMainData(String strFile)
	{
		m_MainData = strFile;
	}
	
	/**
	 * メインデータ取得関数<BR>
	 * メインデータ部の値を取得する。<BR>
	 *
	 * @return String メインデータ部
	 **/
	public String getMainData()
	{
		return m_MainData;
	}
	
	/**
	 * コンテントディスポジション部設定関数<BR>
	 * コンテントディスポジション部の値を<BR>
	 * 設定する。<BR>
	 *
	 * @param strDis コンテントディスポジション部
	 * @return void
	 **/
	public void setDisposition(String strDis)
	{
		try
		{
			StringTokenizer objSt = new StringTokenizer(strDis, "; ");
			int intCount = objSt.countTokens();
			if (intCount < 1)
			{
				return;
			}
			StringTokenizer objSt2;
			String strKey, strValue;
			for(int i = 0; i < intCount; i++)
			{
				objSt2 = new StringTokenizer(objSt.nextToken(), "=");
				if(objSt2.countTokens() == 2)
				{
					strKey   = objSt2.nextToken();
					strValue = trim(objSt2.nextToken());
					
					// フォーム名設定
					if(FORM_NAME.equalsIgnoreCase(strKey))
					{
						m_strFormName = strValue;
					}
					// ファイル名設定
					if(FILE_NAME.equalsIgnoreCase(strKey))
					{
						m_strFileName = strValue;
					}
					// ディスポジションパラメータリスト設定
					if(strKey != null && strValue != null)
					{
						m_htbParams.put(strKey, strValue);
					}
				}
			}
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		return;
	}
	
	/**
	 * フォーム名取得関数<BR>
	 * フォーム名を取得する。<BR>
	 *
	 * @return String フォーム名
	 **/
	public String getFormName()
	{
		return m_strFormName;
	}
	
	/**
	 * アップロードファイル名取得関数<BR>
	 * アップロードファイル名を取得する。<BR>
	 *
	 * @return String アップロードファイル名
	 **/
	public String getFileName()
	{
		return m_strFileName;
	}
	
	/**
	 * ディスポジションパラメータリスト取得関数<BR>
	 * ディスポジションパラメータリストを取得する。<BR>
	 *
	 * @return Hashtable ディスポジションパラメータリスト
	 **/
	public Hashtable getContentParams()
	{
		return m_htbParams;
	}
	
	/**
	 * コンテントタイプ設定関数<BR>
	 * コンテントタイプを設定する。<BR>
	 *
	 * @param strCt コンテントタイプ
	 * @return void
	 **/
	public void setContentType(String strCt)
	{
		m_strContentType = strCt;
	}
	
	/**
	 * コンテントタイプ取得関数<BR>
	 * コンテントタイプを取得する。<BR>
	 *
	 * @return String コンテントタイプ
	 **/
	public String getContentType()
	{
		return m_strContentType;
	}
	
	/**
	 * ダブルコートと改行削除関数<BR>
	 *
	 * @param str "と\n付き文字列
	 * @return String "と\nなし文字列
	 **/
	private String trim(String str)
	{
		if(str.endsWith("\n"))
		{
			return str.substring(1, str.length()-3);
		}
		else
		{
			return str.substring(1, str.length()-1);
		}
	}

}
	