package org.ovirt.engine.core.dao.profiles;
import java.sql.ResultSet;
import java.sql.SQLException;
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.profiles.CpuProfile;
import org.ovirt.engine.core.compat.Guid;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
@Named
@Singleton
public class CpuProfileDaoImpl extends ProfileBaseDaoImpl<CpuProfile> implements CpuProfileDao {
private static final CpuProfileDaoDbFacadaeImplMapper MAPPER = new CpuProfileDaoDbFacadaeImplMapper();
public CpuProfileDaoImpl() {
super("CpuProfile");
}
@Override
public List<CpuProfile> getAllForCluster(Guid clusterId) {
return getAllForCluster(clusterId, null, false, ActionGroup.ASSIGN_CPU_PROFILE);
}
@Override
public List<CpuProfile> getAllForCluster(Guid clusterId, Guid userId, boolean isFiltered, ActionGroup actionGroup) {
return getCallsHandler().executeReadList("GetCpuProfilesByClusterId",
createEntityRowMapper(),
getCustomMapSqlParameterSource().addValue("cluster_id", clusterId)
.addValue("user_id", userId)
.addValue("is_filtered", isFiltered)
.addValue("action_group_id", actionGroup.getId()));
}
@Override
public List<CpuProfile> getAllForQos(Guid qosId) {
return getCallsHandler().executeReadList("GetCpuProfilesByQosId",
createEntityRowMapper(),
getCustomMapSqlParameterSource().addValue("qos_id", qosId));
}
@Override
protected RowMapper<CpuProfile> createEntityRowMapper() {
return MAPPER;
}
@Override
protected MapSqlParameterSource createFullParametersMapper(CpuProfile obj) {
MapSqlParameterSource map = super.createFullParametersMapper(obj);
map.addValue("cluster_id", obj.getClusterId());
return map;
}
protected static class CpuProfileDaoDbFacadaeImplMapper extends ProfileBaseDaoFacadaeImplMapper<CpuProfile> {
@Override
protected CpuProfile createProfileEntity(ResultSet rs) throws SQLException {
CpuProfile cpuProfile = new CpuProfile();
cpuProfile.setClusterId(getGuid(rs, "cluster_id"));
return cpuProfile;
}
}
}