package org.appfuse.dao.ibatis;
import org.appfuse.dao.RoleDao;
import org.appfuse.model.Role;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* This class interacts with iBatis's SQL Maps to save/delete and
* retrieve Role objects.
*
* @author <a href="mailto:matt@raibledesigns.com">Matt Raible</a>
*/
@Repository
public class RoleDaoiBatis extends GenericDaoiBatis<Role, Long> implements RoleDao {
/**
* Constructor to create a Generics-based version using Role as the entity
*/
public RoleDaoiBatis() {
super(Role.class);
}
/**
* {@inheritDoc}
*/
@Override
@SuppressWarnings("unchecked")
public List<Role> getAll() {
return getSqlMapClientTemplate().queryForList("getRoles", null);
}
/**
* {@inheritDoc}
*/
public Role getRoleByName(String name) {
return (Role) getSqlMapClientTemplate().queryForObject("getRoleByName", name);
}
/**
* {@inheritDoc}
*/
@Override
public Role save(final Role role) {
if (role.getId() == null) {
getSqlMapClientTemplate().insert("addRole", role);
} else {
getSqlMapClientTemplate().update("updateRole", role);
}
return role;
}
/**
* {@inheritDoc}
*/
public void removeRole(String rolename) {
getSqlMapClientTemplate().update("deleteRole", rolename);
}
}