package org.ovirt.engine.core.dao; import java.sql.ResultSet; import java.sql.SQLException; import org.apache.commons.lang.NotImplementedException; import org.ovirt.engine.core.common.businessentities.VmStatistics; import org.ovirt.engine.core.compat.Guid; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; public class VmStatisticsDaoDbFacadeImpl extends MassOperationsGenericDaoDbFacade<VmStatistics, Guid> implements VmStatisticsDAO { @Override protected String getProcedureNameForUpdate() { return "UpdateVmStatistics"; } @Override protected String getProcedureNameForGet() { return "GetVmStatisticsByVmGuid"; } @Override protected String getProcedureNameForGetAll() { throw new NotImplementedException(); } @Override protected String getProcedureNameForSave() { return "InsertVmStatistics"; } @Override protected String getProcedureNameForRemove() { return "DeleteVmStatistics"; } @Override protected MapSqlParameterSource createIdParameterMapper(Guid id) { return getCustomMapSqlParameterSource().addValue("vm_guid", id); } @Override protected MapSqlParameterSource createFullParametersMapper(VmStatistics statistics) { return createIdParameterMapper(statistics.getId()) .addValue("cpu_sys", statistics.getcpu_sys()) .addValue("cpu_user", statistics.getcpu_user()) .addValue("elapsed_time", statistics.getelapsed_time()) .addValue("usage_cpu_percent", statistics.getusage_cpu_percent()) .addValue("usage_mem_percent", statistics.getusage_mem_percent()) .addValue("usage_network_percent", statistics.getusage_network_percent()) .addValue("disks_usage", statistics.getDisksUsage()); } @Override protected ParameterizedRowMapper<VmStatistics> createEntityRowMapper() { return new ParameterizedRowMapper<VmStatistics>() { @Override public VmStatistics mapRow(ResultSet rs, int rowNum) throws SQLException { VmStatistics entity = new VmStatistics(); entity.setcpu_sys(rs.getDouble("cpu_sys")); entity.setcpu_user(rs.getDouble("cpu_user")); entity.setelapsed_time(rs.getDouble("elapsed_time")); entity.setusage_cpu_percent((Integer) rs .getObject("usage_cpu_percent")); entity.setusage_mem_percent((Integer) rs .getObject("usage_mem_percent")); entity.setusage_network_percent((Integer) rs .getObject("usage_network_percent")); entity.setDisksUsage((String) rs .getObject("disks_usage")); entity.setId(Guid.createGuidFromString(rs .getString("vm_guid"))); return entity; } }; } }