package org.ovirt.engine.core.dao;
import java.util.List;
import javax.inject.Named;
import javax.inject.Singleton;
import org.ovirt.engine.core.common.businessentities.ActionGroup;
import org.ovirt.engine.core.common.businessentities.RoleGroupMap;
import org.ovirt.engine.core.compat.Guid;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
/**
* {@code RoleGroupMapDaoImpl} provides a concrete implementation of {@link RoleGroupMapDao}.
*/
@Named
@Singleton
public class RoleGroupMapDaoImpl extends BaseDao implements RoleGroupMapDao {
private static final RowMapper<RoleGroupMap> roleGroupMapRowMapper =(rs, rowNum) ->
new RoleGroupMap(ActionGroup.forValue(rs.getInt("action_group_id")), getGuidDefaultEmpty(rs, "role_id"));
@Override
public RoleGroupMap getByActionGroupAndRole(ActionGroup group, Guid id) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("action_group_id", group.getId()).addValue("role_id", id);
return getCallsHandler().executeRead("Get_roles_groups_By_action_group_id_And_By_role_id",
roleGroupMapRowMapper,
parameterSource);
}
@Override
public List<RoleGroupMap> getAllForRole(Guid id) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("role_id", id);
return getCallsHandler().executeReadList("Get_role_groups_By_role_id",
roleGroupMapRowMapper,
parameterSource);
}
@Override
public void save(RoleGroupMap map) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("action_group_id", map.getActionGroup().getId())
.addValue("role_id", map.getRoleId());
getCallsHandler().executeModification("Insert_roles_groups", parameterSource);
}
@Override
public void remove(ActionGroup group, Guid id) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("action_group_id", group.getId()).addValue("role_id",
id);
getCallsHandler().executeModification("Delete_roles_groups", parameterSource);
}
}