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

package jp.sourceforge.livez.vodafone;

import javax.servlet.http.HttpServletRequest;

import org.springframework.web.context.WebApplicationContext;

import jp.sourceforge.livez.IllegalRequestException;
import jp.sourceforge.livez.Service;
import jp.sourceforge.livez.util.SpringUtils;

/**
 * ボーダフォンサービス検証クラスです。
 * 
 * @author 杉澤 浩二
 */
public final class VodafoneService implements Service<VodafoneRequest, VodafoneGenerator> {

	/**
	 * デフォルトコンストラクタです。
	 */
	public VodafoneService() {}

	/**
	 * HTTP リクエスト情報を解析しボーダフォン端末リクエスト情報を返します。
	 * 
	 * @param request HTTP リクエスト情報
	 * @return ボーダフォン端末リクエスト情報
	 * @throws NullPointerException HTTPリクエスト情報が <code>null</code> の場合
	 * @throws IllegalRequestException HTTPリクエスト情報が不正な場合
	 */
	public VodafoneRequest getMobilePhoneRequest(final HttpServletRequest request) throws NullPointerException, IllegalRequestException {
		return new VodafoneRequestImpl(request);
	}

	/**
	 * ボーダフォン端末情報ジェネレータを返します。
	 * 
	 * @param context Spring Framework の WebApplicationContext
	 * @return ボーダフォン端末情報ジェネレータ
	 */
	public VodafoneGenerator getMobilePhoneGenerator(final WebApplicationContext context) {
		return (VodafoneGenerator) SpringUtils.getRequiredBean(context, VodafoneGenerator.BEAN_ID);
	}

}
