/*
 * Copyright (C) 2005-2006 Kouji Sugisawa. All rights reserved.
 */

package jp.sourceforge.livez.imode;

/**
 * iモード端末の通信状態コードの列挙型です。
 *
 * @author 杉澤 浩二
 */
public enum AccessType {

	/**
	 * ブラウザからの通信時(ADF取得時を含む)
	 */
	BROWSER_OR_ADF,

	/**
	 * 端末側設定で"画像表示なし"に設定されている場合のブラウザからの通信時
	 */
	BROWSER_NONE_IMAGE,

	/**
	 * JAR 取得時
	 */
	JAR,

	/**
	 * iアプリ通信時
	 */
	I_APPLI,

	/**
	 * iアプリ通信時(FeliCa オンライン処理時)
	 */
	FELICA;

	/**
	 * 指定された通信状態コードから適切な通信状態コードの列挙型を返します。
	 * 
	 * @param code 通信状態コード
	 * @return 通信状態コードの列挙型
	 * @throws IllegalArgumentException 適切な通信状態コードの列挙型が見つからない場合
	 */
	static AccessType getAccessType(final String code) throws IllegalArgumentException {
		if ("TB".equals(code))
			return AccessType.BROWSER_OR_ADF;
		if ("TC".equals(code))
			return AccessType.BROWSER_NONE_IMAGE;
		if ("TD".equals(code))
			return AccessType.JAR;
		if ("TJ".equals(code))
			return AccessType.I_APPLI;
		if ("TE".equals(code))
			return AccessType.FELICA;

		throw new IllegalArgumentException(code);
	}

}
