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

package jp.sourceforge.livez.dao.ibatis;

import org.springframework.dao.DataAccessException;
import org.springframework.orm.ibatis.SqlMapClientTemplate;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

import jp.sourceforge.livez.dao.EZweb;
import jp.sourceforge.livez.dao.EZwebStamp;

/**
 * EZwebDAO の iBATIS 版実装クラスです。
 * 
 * @author 杉澤 浩二
 */
public final class EZwebDAO extends SqlMapClientDaoSupport implements jp.sourceforge.livez.dao.EZwebDAO {

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

	/**
	 * 指定されたデバイスタイプ(デバイスID)の EZweb 端末情報を返します。
	 * 対応する EZweb 端末情報が見つからない場合は <code>null</code> を返します。
	 * 
	 * @param deviceType デバイスタイプ(デバイスID)
	 * @return EZweb 端末情報。又は <code>null</code>
	 * @throws DataAccessException DAO の操作で例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	public EZweb load(final String deviceType) throws DataAccessException {
		SqlMapClientTemplate template = getSqlMapClientTemplate();
		EZweb result = (EZweb) template.queryForObject("livez.getEZweb", deviceType);

		if (result != null) {
			result.setStamp((EZwebStamp) template.queryForObject("livez.getEZwebStamp", deviceType));
			result.setFrames(template.queryForList("livez.getEZwebFrame", deviceType));
		}

		return result;
	}

}
