package org.itscool.weber.user;

import java.util.List;

import org.itscool.commons.dao.BaseDao;
import org.itscool.commons.dao.Criteria;

/**
 * 権限情報データアクセスクラス
 * @author KANO
 * @since jdk1.4.1
 * @version 1.00A 2004/11/1
 */
public class RoleDao extends BaseDao{
	/**
     * テーブルから全ユーザ情報を取得します
     * @return ユーザ情報の一覧をListで返します
     */
    public List getAllData(){
        Criteria crt = new Criteria(Role.class);
		List lst = select(crt);
		return lst;
    }
    
    /**
     * 指定されたロール名に基づく権限情報を取得します
     * @param name ロール名
     * @return 権限情報を返します
     */
	public Role getRole(String name){
		Criteria crt = new Criteria(Role.class);
		crt.eq(Role.TABLE + "." + Role.COLUM_name, name);
		List lst = this.select(crt);
		Role role = null;
		if( lst.size() > 0 ){
			role = (Role)lst.get(0);
		}
		return role;
	}
	
	/**
	 * 権限情報を追加します
	 * @param role 権限情報
	 * @return 追加した権限情報のIDを返します
	 */
	public int save(Role role){
		Criteria crt = new Criteria(Role.class);
		int id = getNewId(Role.TABLE, Role.PK_COLUM_id);
		role.setId(id);
		this.insert(crt, role);
		return id;
	}
	
	/**
	 * ユーザ情報のUPDATEを行います
	 * @param role 権限情報
     */
	public void update(Role role){
		Criteria crt = new Criteria(Role.class);
		crt.eq(Role.TABLE+"."+Role.PK_COLUM_id, role.getId());
		this.update(crt, role);
	}
	
	/**
	 * 権限情報のDELETEを行います
	 * @param role 権限情報
     */
	public void delete(Role role){
		Criteria crt = new Criteria(Role.class);
		crt.eq(Role.TABLE + "." + Role.PK_COLUM_id, role.getId());
		this.delete(crt);
	}
}
