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.VdcOption;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
/**
* {@code VdcOptionDaoImpl} provides a concrete implementation of {@link VdcOptionDao}.
*/
@Named
@Singleton
public class VdcOptionDaoImpl extends BaseDao implements VdcOptionDao {
private static final RowMapper<VdcOption> vdcOptionRowMapper = (rs, rowNum) -> {
VdcOption entity = new VdcOption();
entity.setOptionName(rs.getString("option_name"));
entity.setOptionValue(rs.getString("option_value"));
entity.setOptionId(rs.getInt("option_id"));
entity.setVersion(rs.getString("version"));
return entity;
};
@Override
public VdcOption get(int id) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("option_id", id);
return getCallsHandler().executeRead("GetVdcOptionById", vdcOptionRowMapper, parameterSource);
}
@Override
public VdcOption getByNameAndVersion(String name, String version) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("option_name", name).addValue("version", version);
return getCallsHandler().executeRead("GetVdcOptionByName", vdcOptionRowMapper, parameterSource);
}
@Override
public List<VdcOption> getAll() {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource();
return getCallsHandler().executeReadList("GetAllFromVdcOption", vdcOptionRowMapper, parameterSource);
}
@Override
public void save(VdcOption option) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("option_name", option.getOptionName())
.addValue("option_value", option.getOptionValue())
.addValue("version", option.getVersion())
.addValue("option_id", option.getOptionId());
getCallsHandler().executeModification("InsertVdcOption", parameterSource);
}
@Override
public void update(VdcOption option) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("option_name", option.getOptionName())
.addValue("option_value", option.getOptionValue())
.addValue("option_id", option.getOptionId())
.addValue("version", option.getVersion());
getCallsHandler().executeModification("UpdateVdcOption", parameterSource);
}
@Override
public void remove(int id) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("option_id", id);
getCallsHandler().executeModification("DeleteVdcOption", parameterSource);
}
}