package org.ovirt.engine.core.dao.network;
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.network.VmNicFilterParameter;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dao.DefaultGenericDao;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
@Named
@Singleton
public class VmNicFilterParameterDaoImpl extends DefaultGenericDao<VmNicFilterParameter, Guid> implements
VmNicFilterParameterDao {
public VmNicFilterParameterDaoImpl() {
super("VmInterfaceFilterParameter");
}
@Override
public List<VmNicFilterParameter> getAllForVmNic(Guid vmInterfaceId) {
return getAllForVmNic(vmInterfaceId, null, false);
}
@Override
public List<VmNicFilterParameter> getAllForVmNic(Guid vmInterfaceId, Guid userId, boolean filtered) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("vm_interface_id", vmInterfaceId)
.addValue("user_id", userId)
.addValue("is_filtered", filtered);
List<VmNicFilterParameter> results =
getCallsHandler().executeReadList("GetVmInterfaceFilterParametersByVmInterfaceId",
VmNicFilterParameterRowMapper.INSTANCE,
parameterSource);
return results;
}
@Override
public VmNicFilterParameter get(Guid id, Guid userId, boolean filtered) {
return getCallsHandler().executeRead(getProcedureNameForGet(),
VmNicFilterParameterRowMapper.INSTANCE,
createIdParameterMapper(id).addValue("user_id", userId).addValue("is_filtered", filtered));
}
@Override
public List<VmNicFilterParameter> getAll(Guid userId, boolean filtered) {
return getCallsHandler().executeReadList(getProcedureNameForGetAll(),
VmNicFilterParameterRowMapper.INSTANCE,
getCustomMapSqlParameterSource()
.addValue("user_id", userId)
.addValue("is_filtered", filtered));
}
@Override
protected MapSqlParameterSource createIdParameterMapper(Guid id) {
return getCustomMapSqlParameterSource().addValue("id", id);
}
@Override
public RowMapper<VmNicFilterParameter> createEntityRowMapper() {
return VmNicFilterParameterRowMapper.INSTANCE;
}
@Override
protected MapSqlParameterSource createFullParametersMapper(VmNicFilterParameter obj) {
return createIdParameterMapper(
obj.getId())
.addValue("vm_interface_id", obj.getVmInterfaceId())
.addValue("name", obj.getName())
.addValue("value", obj.getValue());
}
public static class VmNicFilterParameterRowMapper implements RowMapper<VmNicFilterParameter> {
private static final VmNicFilterParameterRowMapper INSTANCE = new VmNicFilterParameterRowMapper();
@Override
public VmNicFilterParameter mapRow(ResultSet rs, int rowNum) throws SQLException {
VmNicFilterParameter entity = new VmNicFilterParameter();
entity.setId(getGuidDefaultEmpty(rs, "id"));
entity.setVmInterfaceId(getGuidDefaultEmpty(rs, "vm_interface_id"));
entity.setName(rs.getString("name"));
entity.setValue(rs.getString("value"));
return entity;
}
}
}