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.profiles.DiskProfile; import org.ovirt.engine.core.compat.Guid; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; @Named @Singleton public class DiskProfileDaoImpl extends ProfileBaseDaoImpl<DiskProfile> implements DiskProfileDao { private static final DiskProfileDaoDbFacadaeImplMapper MAPPER = new DiskProfileDaoDbFacadaeImplMapper(); public DiskProfileDaoImpl() { super("DiskProfile"); } @Override public List<DiskProfile> getAllForStorageDomain(Guid storageDomainId) { return getAllForStorageDomain(storageDomainId, null, false); } @Override public List<DiskProfile> getAllForStorageDomain(Guid storageDomainId, Guid userId, boolean isFiltered) { return getCallsHandler().executeReadList("GetDiskProfilesByStorageDomainId", createEntityRowMapper(), getCustomMapSqlParameterSource().addValue("storage_domain_id", storageDomainId) .addValue("user_id", userId) .addValue("is_filtered", isFiltered)); } @Override public void nullifyQosForStorageDomain(Guid storageDomainId) { getCallsHandler().executeModification("nullifyQosForStorageDomain", getCustomMapSqlParameterSource().addValue("storage_domain_id", storageDomainId.getUuid())); } @Override public List<DiskProfile> getAllForQos(Guid qosId) { return getCallsHandler().executeReadList("GetDiskProfilesByQosId", createEntityRowMapper(), getCustomMapSqlParameterSource().addValue("qos_id", qosId)); } @Override protected RowMapper<DiskProfile> createEntityRowMapper() { return MAPPER; } @Override protected MapSqlParameterSource createFullParametersMapper(DiskProfile obj) { MapSqlParameterSource map = super.createFullParametersMapper(obj); map.addValue("storage_domain_id", obj.getStorageDomainId()); return map; } protected static class DiskProfileDaoDbFacadaeImplMapper extends ProfileBaseDaoFacadaeImplMapper<DiskProfile> { @Override protected DiskProfile createProfileEntity(ResultSet rs) throws SQLException { DiskProfile diskProfile = new DiskProfile(); diskProfile.setStorageDomainId(getGuid(rs, "storage_domain_id")); return diskProfile; } } }