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.storage.ImageStorageDomainMap;
import org.ovirt.engine.core.common.businessentities.storage.ImageStorageDomainMapId;
import org.ovirt.engine.core.compat.Guid;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
@Named
@Singleton
public class ImageStorageDomainMapDaoImpl extends BaseDao implements ImageStorageDomainMapDao {
@Override
public void save(ImageStorageDomainMap entity) {
getCallsHandler().executeModification("Insertimage_storage_domain_map",
getCustomMapSqlParameterSource().addValue("image_id",
entity.getImageId()).addValue("storage_domain_id",
entity.getStorageDomainId())
.addValue("quota_id", entity.getQuotaId())
.addValue("disk_profile_id", entity.getDiskProfileId()));
}
@Override
public void update(ImageStorageDomainMap entity) {
throw new UnsupportedOperationException();
}
@Override
public void remove(ImageStorageDomainMapId id) {
getCallsHandler().executeModification("Deleteimage_storage_domain_map",
getCustomMapSqlParameterSource().addValue("image_id",
id.getImageId()).addValue("storage_domain_id",
id.getStorageDomainId()));
}
@Override
public void remove(Guid imageId) {
getCallsHandler().executeModification("Deleteimage_storage_domain_map_by_image_id",
getCustomMapSqlParameterSource().addValue("image_id",
imageId));
}
@Override
public List<ImageStorageDomainMap> getAllByStorageDomainId(Guid storageDomainId) {
return getCallsHandler().executeReadList("Getimage_storage_domain_mapBystorage_domain_id",
IMAGE_STORAGE_DOMAIN_MAP_MAPPER,
getCustomMapSqlParameterSource().addValue("storage_domain_id",
storageDomainId));
}
@Override
public List<ImageStorageDomainMap> getAllByImageId(Guid imageId) {
return getCallsHandler().executeReadList("Getimage_storage_domain_mapByimage_id",
IMAGE_STORAGE_DOMAIN_MAP_MAPPER,
getCustomMapSqlParameterSource().addValue("image_id",
imageId));
}
@Override
public ImageStorageDomainMap get(ImageStorageDomainMapId id) {
throw new UnsupportedOperationException();
}
@Override
public List<ImageStorageDomainMap> getAll() {
throw new UnsupportedOperationException();
}
@Override
public void updateQuotaForImageAndSnapshots(Guid diskId, Guid storageDomainId, Guid quotaId) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("disk_id", diskId)
.addValue("storage_domain_id", storageDomainId)
.addValue("quota_id", quotaId);
getCallsHandler().executeModification("updateQuotaForImageAndSnapshots", parameterSource);
}
@Override
public void updateDiskProfileByImageGroupIdAndStorageDomainId(Guid diskId, Guid storageDomainId, Guid diskProfileId) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("image_group_id", diskId)
.addValue("storage_domain_id", storageDomainId)
.addValue("disk_profile_id", diskProfileId);
getCallsHandler().executeModification("UpdateDiskProfileByImageGroupId", parameterSource);
}
private static final RowMapper<ImageStorageDomainMap> IMAGE_STORAGE_DOMAIN_MAP_MAPPER = (rs, rowNum) -> {
ImageStorageDomainMap entity = new ImageStorageDomainMap();
entity.setImageId(getGuidDefaultEmpty(rs, "image_id"));
entity.setStorageDomainId(getGuidDefaultEmpty(rs, "storage_domain_id"));
entity.setQuotaId(getGuid(rs, "quota_id"));
entity.setDiskProfileId(getGuid(rs, "disk_profile_id"));
return entity;
};
}