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

package jp.sourceforge.livez.imode;

import jp.sourceforge.livez.UserId;

/**
 * iモード UID 情報のインターフェースです。
 * iモード UID は公式サイト時のみ有効です。
 * 
 * @author 杉澤 浩二
 */
public interface UID extends UserId {

	/**
	 * UID キー名を表します。
	 */
	public static final String KEY = "uid";

	/**
	 * UID の既定値を表します。
	 */
	public static final String DEFAULT = "NULLGWDOCOMO";

	/**
	 * UID の値を返します。
	 * 
	 * @return UID
	 */
	public String getValue();

	/**
	 * UID の種類を返します。
	 * 会員状態として有効でない場合は <code>null</code> を返します。
	 * 
	 * @return UID の種類
	 */
	public UIDType getType();

	/**
	 * ユーザIDを返します。<p>
	 * ユーザIDは UID から区分を除いた部分になります。
	 * 会員状態として有効でない場合は <code>null</code> を返します。
	 * 
	 * @return ユーザID
	 */
	public String getUserId();

	/**
	 * 会員状態を返します。
	 * 
	 * @return 会員状態
	 */
	public boolean isMember();

	/**
	 * 非会員状態を返します。
	 * このメソッドは利便性の為に追加されています。
	 * 会員状態でない場合はこの値は必ず <code>true</code> を返します。
	 * 
	 * @return 非会員状態
	 */
	public boolean isGuest();

}
