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

package jp.sourceforge.livez.ezweb;

import java.util.List;

import jp.sourceforge.livez.CarrierType;
import jp.sourceforge.livez.MobilePhone;
import jp.sourceforge.livez.Screen;
import jp.sourceforge.livez.ServiceType;

/**
 * EZweb 端末情報のインターフェースです。
 * 
 * @author 杉澤 浩二
 */
public interface EZweb extends MobilePhone<EZwebBrowser, EZappli, SubscriberId> {

	/**
	 * 端末の提供する通信サービスの種類を返します。<p>
	 * 必ず "EZweb" を返します。
	 * 
	 * @return EZweb
	 */
	public ServiceType getServiceType();

	/**
	 * キャリアの種類を返します。<p>
	 * 必ず "AU" 又は "Tu-Ka" を返します。
	 * 
	 * @return AU 又は Tu-Ka
	 */
	public CarrierType getCarrierType();

	/**
	 * 必ずデバイスタイプを返します。<p>
	 * 
	 * @return デバイスタイプ
	 */
	public String getId();

	public String getName();

	public String getProductName();

	/**
	 * シリーズ名を返します。<p>
	 * シリーズ名がない場合は <code>null</code> を返します。
	 * 
	 * @return シリーズ名
	 */
	public String getSeriesName();

	/**
	 * 画面情報を返します。<p>
	 * 
	 * @return 液晶画面情報
	 */
	public Screen getScreen();

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

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

	/**
	 * ブラウザ情報を返します。<p>
	 * 
	 * @return ブラウザ情報
	 */
	public EZwebBrowser getBrowser();

	/**
	 * EZアプリ(Java/BREW)実行環境情報を返します。<p>
	 * EZアプリに対応していない場合は <code>null</code> を返します。
	 * 
	 * @return EZアプリ実行環境情報
	 */
	public EZappli getAppli();

	/**
	 * 写真フレーム対応情報を返します。<p>
	 * 不明な場合は <code>null</code> を返します。
	 * 
	 * @return 写真フレーム対応情報
	 */
	public List<Frame> getFrames();

	/**
	 * 写真スタンプ対応情報を返します。<p>
	 * 不明な場合は <code>null</code> を返します。
	 * 
	 * @return 写真スタンプ対応情報
	 */
	public Stamp getStamp();

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

	/**
	 * EZ番号(サブスクライバID)情報を返します。<p>
	 * EZ番号通知設定が "OFF" の場合は <code>null</code> を返します。
	 * 
	 * @return EZ番号(サブスクライバID)
	 */
	public SubscriberId getUserId();

	/**
	 * まとめてau支払い対応状況を返します。<p>
	 * C3XX シリーズ以前の端末及び Tu-Ka 系端末の場合 <code>false</code> を返します。
	 * 
	 * @return まとめてau支払い対応状況
	 */
	public boolean isPremiumEZ();

}
