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

package jp.sourceforge.livez.ezweb;

import jp.sourceforge.livez.MobilePhoneRequest;

/**
 * EZweb 端末リクエスト情報のインターフェースです。
 * 
 * @author 杉澤 浩二
 */
public interface EZwebRequest extends MobilePhoneRequest<EZwebUserAgent> {

	/**
	 * EZweb 端末の HTTP ユーザエージェント情報を返します。
	 * 
	 * @return EZweb対応端末のHTTPユーザエージェント情報
	 */
	public EZwebUserAgent getUserAgent();

	/**
	 * HDML ブラウザ搭載端末の場合はEZサーバのホスト名を返します。
	 * それ以外の場合は <code>null</code> を返します。
	 * 
	 * @return EZサーバのホスト名。又は <code>null</code>
	 */
	public String getEZServerName();

	/**
	 * タイトルバーの表示有無を返します。
	 * 
	 * @return タイトルバーの表示有無
	 */
	public boolean isTitlebar();

	/**
	 * カラー対応状況を返します。
	 * 
	 * @return カラー対応状況
	 */
	public boolean isColorScreen();

	/**
	 * 一回の通信で受信可能な最大データサイズ(バイト)を返します。
	 * 
	 * @return 最大データサイズ
	 */
	public int getMaxDataSize();

	/**
	 * ソフトキーの数を返します。
	 * C202DE 端末の場合、0 を返します。
	 * 
	 * @return ソフトキーの数
	 */
	public int getSoftkeys();

	/**
	 * 文字の表示可能桁数を返します。
	 * C201H 端末の場合、0 を返します。
	 * 
	 * @return 表示可能桁数
	 */
	public int getCharacterColumn();

	/**
	 * 文字の表示可能行数を返します。
	 * C201H 端末の場合、0 を返します。
	 * 
	 * @return 表示可能行数
	 */
	public int getCharacterRow();

	/**
	 * 使用可能な色数または階調数を返します。
	 * C201H、C202DE 端末の場合、0 を返します。
	 * 
	 * @return 色数または階調数
	 */
	public int getColor();

	/**
	 * ブラウザの表示可能最大幅を返します。
	 * C202DE 端末の場合、0 を返します。
	 * 
	 * @return 表示可能最大幅
	 */
	public int getBrowserWidth();

	/**
	 * ブラウザの表示可能最大高さを返します。
	 * C202DE 端末の場合、0 を返します。
	 * 
	 * @return 表示可能最大高さ
	 */
	public int getBrowserHeight();

	/**
	 * ソフトキーのラベル文字列として使用可能な文字の最大桁数を返します。
	 * 
	 * @return 最大桁数
	 */
	public int getSoftkeyLabelLength();

	/**
	 * EZ番号(サブスクライバID)情報を返します。
	 * 
	 * @return EZ番号(サブスクライバID)情報
	 */
	public SubscriberId getSubscriberID();

	/**
	 * EZweb の国際ローミング対応端末にて EZweb を利用した場合に、
	 * [利用国/地域を表す数字列(SID)]を返します。<p>
	 * 日本国内からのアクセスの場合は、12304〜12319及び12336〜12351の範囲となります。
	 * 不明な場合は <code>null</code> を返します。<p>
	 * SID の詳細については <a href="http://www.ifast.org">IFAST</a> を参照して下さい。
	 * 
	 * @return SID
	 * @see <a href="http://www.ifast.org">IFAST</a>
	 */
	public String getSid();

	/**
	 * 各種 EZweb サービスへの対応状況を返します。
	 * 
	 * @return 各種 EZweb サービスへの対応状況
	 */
	public EZwebMultiMedia getDataFormat();

	/**
	 * 古い端末の場合に輻制御に対応しているかどうかを返します。
	 * 
	 * @return 輻制御対応状況
	 */
	public boolean isCc();

	/**
	 * QVGA 液晶搭載端末において画面等倍表示状態であるかどうかを返します。
	 * ※QVGA 液晶搭載の有無を表すものではありません。
	 * 
	 * @return QVGA 液晶搭載端末での画面等倍表示状態
	 */
	public boolean isQvga();

	/**
	 * 添付データ再生設定で再生しない設定状態であるかどうかを返します。
	 * 
	 * @return 再生設定状態
	 */
	public boolean isNonAttachment();

}
