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

package jp.sourceforge.livez.dao.hibernate;

import jp.sourceforge.livez.dao.EZweb;

import org.springframework.dao.DataAccessException;
import org.springframework.orm.ObjectRetrievalFailureException;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

/**
 * EZwebDAO の Hibernate 3 版実装クラスです。
 * 
 * @author 杉澤 浩二
 */
public final class EZwebDAO extends HibernateDaoSupport 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 {
		HibernateTemplate ht = getHibernateTemplate();
		try {
			EZweb result = (EZweb) ht.load(EZweb.class, deviceType);
			result.setFrames(ht.find("FROM EZwebFrame WHERE deviceType = ? ORDER BY width, height", deviceType));
			return result;
		} catch (ObjectRetrievalFailureException e) {
			return null;
		}
	}

}
