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

package jp.sourceforge.livez.imode;

import jp.sourceforge.livez.UserAgent;

/**
 * iモード端末の HTTP ユーザエージェント情報のインターフェースです。
 * 
 * @author 杉澤 浩二
 */
public interface ImodeUserAgent extends UserAgent {

	/**
	 * 通信の種類を返します。
	 * 
	 * @return 通信の種類
	 */
	public NetworkType getNetworkType();

	/**
	 * 端末の種類を返します。
	 * 
	 * @return 端末の種類
	 */
	public ImodeType getType();

	/**
	 * HTTP ユーザエージェント中の機種名を返します。
	 * 
	 * @return 機種名
	 */
	public String getId();

	/**
	 * 機種名を返します。
	 * 
	 * @return 機種名
	 */
	public String getName();

	/**
	 * ベンダーIDを返します。
	 * 端末の種類が PDC 又は FOMA 以外の場合は <code>null</code> を返します。
	 * 
	 * @return ベンダーID
	 */
	public String getVendorId();

	/**
	 * シリーズ名を返します。
	 * 端末の種類が PDC 又は FOMA 以外の場合は <code>null</code> を返します。
	 * 
	 * @return シリーズ名
	 */
	public String getSeriesName();

	/**
	 * キャッシュサイズ(キロバイト単位)を返します。
	 * 不明な場合は <code>0</code> を返します。<br>
	 * 但し端末の種類が PDC 又は FOMA の場合は必ず 5 (キロバイト)以上の値を返します。<br>
	 * 
	 * @return キャッシュサイズ
	 */
	public int getCacheSize();

	/**
	 * 通信状態コードを返します。
	 * 不明な場合は <code>null</code> を返します。
	 * 
	 * @return 状態コード
	 */
	public AccessType getAccessType();

	/**
	 * 横表示可能バイト数を返します。
	 * 不明な場合は <code>0</code> を返します。
	 * 
	 * @return 横表示可能バイト数
	 */
	public int getWidth();

	/**
	 * 縦表示可能バイト数を返します。
	 * 不明な場合は <code>0</code> を返します。
	 * 
	 * @return 縦表示可能バイト数
	 */
	public int getHeight();

	/**
	 * 製造番号を返します。
	 * 値には接頭語(ser)は含まれません。
	 * 不明な場合は <code>null</code> を返します。
	 * 
	 * @return 製造番号
	 */
	public String getSer();

	/**
	 * FOMA カード識別番号を返します。
	 * 値には接頭語(icc)は含まれません。
	 * 不明な場合は <code>null</code> を返します。
	 * 
	 * @return FOMA カード識別番号
	 */
	public String getIcc();

	/**
	 * 公式アプリ(デラックスアプリ)時のトラステッドAPIDを返します。
	 * 不明な場合は <code>null</code> を返します。
	 * 
	 * @return トラステッドAPID
	 */
	public String getTrustedId();

	/**
	 * iモード対応カーナビ端末や PlayStation の場合に、対応しているHTMLのバージョン情報を返します。
	 * それ以外の場合は <code>null</code> を返します。
	 * 
	 * @return iモード対応カーナビ端末の場合に対応しているHTMLのバージョン情報を返します。
	 */
	public Float getHtmlVersion();

	/**
	 * iモード対応カーナビ端末の場合に、ブラウザ名を返します。
	 * それ以外の場合は <code>null</code> を返します。
	 * 
	 * @return iモード対応カーナビ端末の場合、ブラウザ名を返します。
	 */
	public String getBrowserName();

}
