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.VdsSpmIdMap;
import org.ovirt.engine.core.compat.Guid;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
/**
* {@code VdsSpmIdMapDaoImpl} provides an implementation of {@link VdsSpmIdMapDao}.
*/
@Named
@Singleton
public class VdsSpmIdMapDaoImpl extends BaseDao implements VdsSpmIdMapDao{
@Override
public VdsSpmIdMap get(Guid vdsId) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("vds_id", vdsId);
return getCallsHandler().executeRead("Getvds_spm_id_mapByvds_id",
vdsSpmIdMapRowMapper,
parameterSource);
}
@Override
public void save(VdsSpmIdMap vdsSpmIdMap) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("storage_pool_id",
vdsSpmIdMap.getStoragePoolId()).addValue("vds_id", vdsSpmIdMap.getId()).addValue(
"vds_spm_id", vdsSpmIdMap.getVdsSpmId());
getCallsHandler().executeModification("Insertvds_spm_id_map", parameterSource);
}
@Override
public void remove(Guid vdsId) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("vds_id", vdsId);
getCallsHandler().executeModification("Deletevds_spm_id_map", parameterSource);
}
@Override
public List<VdsSpmIdMap> getAll(Guid storagePoolId) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("storage_pool_id",
storagePoolId);
return getCallsHandler().executeReadList("Getvds_spm_id_mapBystorage_pool_id",
vdsSpmIdMapRowMapper,
parameterSource);
}
@Override
public void removeByVdsAndStoragePool(Guid vdsId, Guid storagePoolId) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("vds_id", vdsId).addValue("storage_pool_id",
storagePoolId);
getCallsHandler().executeModification("DeleteByPoolvds_spm_id_map", parameterSource);
}
@Override
public VdsSpmIdMap get(Guid storagePoolId, int spmId ) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("storage_pool_id",
storagePoolId).addValue("vds_spm_id", spmId);
return getCallsHandler().executeRead("Getvds_spm_id_mapBystorage_pool_idAndByvds_spm_id",
vdsSpmIdMapRowMapper,
parameterSource);
}
@Override
public List<VdsSpmIdMap> getAll() {
throw new UnsupportedOperationException();
}
@Override
public void update(VdsSpmIdMap entity) {
throw new UnsupportedOperationException();
}
private static final RowMapper<VdsSpmIdMap> vdsSpmIdMapRowMapper = (rs, rowNum) -> {
VdsSpmIdMap entity = new VdsSpmIdMap();
entity.setStoragePoolId(getGuidDefaultEmpty(rs, "storage_pool_id"));
entity.setId(getGuidDefaultEmpty(rs, "vds_id"));
entity.setVdsSpmId(rs.getInt("vds_spm_id"));
return entity;
};
}