package org.ovirt.engine.core.dao.network;
import java.util.List;
import javax.inject.Named;
import javax.inject.Singleton;
import org.ovirt.engine.core.common.businessentities.network.NetworkFilter;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.compat.Version;
import org.ovirt.engine.core.dao.DefaultReadDao;
import org.ovirt.engine.core.dao.VersionRowMapper;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
@Named
@Singleton
public class NetworkFilterDaoImpl extends DefaultReadDao<NetworkFilter, Guid>implements NetworkFilterDao {
private static final String FILTER_ID = "filter_id";
private static final String FILTER_NAME = "filter_name";
private static final String FILTER_VERSION = "version";
private static final RowMapper<NetworkFilter> networkFilterRowMapper = (rs, rowNum) -> {
NetworkFilter entity = new NetworkFilter();
entity.setId(getGuid(rs, FILTER_ID));
entity.setName(rs.getString(FILTER_NAME));
final VersionRowMapper versionRowMapper = new VersionRowMapper(FILTER_VERSION);
Version version = versionRowMapper.mapRow(rs, rowNum);
entity.setVersion(version);
return entity;
};
public NetworkFilterDaoImpl() {
super("NetworkFilter");
}
@Override
public List<NetworkFilter> getAllNetworkFilters() {
return getCallsHandler().executeReadList("GetAllNetworkFilters",
networkFilterRowMapper,
getCustomMapSqlParameterSource());
}
@Override
public List<NetworkFilter> getAllSupportedNetworkFiltersByVersion(Version version) {
return getCallsHandler().executeReadList("GetAllSupportedNetworkFiltersByVersion",
networkFilterRowMapper,
getCustomMapSqlParameterSource().addValue(FILTER_VERSION, version));
}
@Override
public NetworkFilter getNetworkFilterById(Guid id) {
return getCallsHandler().executeRead("GetNetworkFilterById",
networkFilterRowMapper,
getCustomMapSqlParameterSource().addValue(FILTER_ID, id));
}
@Override
public NetworkFilter getNetworkFilterByName(String networkFilterName) {
return getCallsHandler().executeRead("GetNetworkFilterByName",
networkFilterRowMapper,
getCustomMapSqlParameterSource().addValue(FILTER_NAME, networkFilterName));
}
@Override
protected MapSqlParameterSource createIdParameterMapper(Guid id) {
return getCustomMapSqlParameterSource().addValue(FILTER_ID, id);
}
@Override
protected RowMapper<NetworkFilter> createEntityRowMapper() {
return networkFilterRowMapper;
}
}