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.NetworkView;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dao.BaseDao;
import org.ovirt.engine.core.dao.VersionRowMapper;
import org.ovirt.engine.core.dao.network.NetworkDaoImpl.NetworkRowMapperBase;
@Named
@Singleton
public class NetworkViewDaoImpl extends BaseDao implements NetworkViewDao {
@Override
public List<NetworkView> getAllWithQuery(String query) {
return getJdbcTemplate().query(query, NetworkViewRowMapper.instance);
}
@Override
public List<NetworkView> getAllForProvider(Guid id) {
return getCallsHandler().executeReadList("GetAllNetworkViewsByNetworkProviderId",
NetworkViewRowMapper.instance,
getCustomMapSqlParameterSource().addValue("id", id));
}
private static class NetworkViewRowMapper extends NetworkRowMapperBase<NetworkView> {
public static final NetworkViewRowMapper instance = new NetworkViewRowMapper();
@Override
public NetworkView mapRow(ResultSet rs, int rowNum) throws SQLException {
NetworkView entity = super.mapRow(rs, rowNum);
entity.setStoragePoolName(rs.getString("storage_pool_name"));
entity.setCompatibilityVersion(new VersionRowMapper("compatibility_version").mapRow(rs, rowNum));
entity.setProviderName(rs.getString("provider_name"));
entity.setQosName(rs.getString("qos_name"));
return entity;
}
protected NetworkView createNetworkEntity() {
return new NetworkView();
}
}
}