package org.ovirt.engine.core.dao; import java.util.Date; import java.util.List; import javax.inject.Named; import javax.inject.Singleton; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.storage.ImageTransfer; import org.ovirt.engine.core.common.businessentities.storage.ImageTransferPhase; import org.ovirt.engine.core.compat.Guid; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; @Named @Singleton public class ImageTransferDaoImpl extends DefaultGenericDao<ImageTransfer, Guid> implements ImageTransferDao { public ImageTransferDaoImpl() { super("ImageUploads"); setProcedureNameForGet("GetImageUploadsByCommandId"); setProcedureNameForGetAll("GetAllFromImageUploads"); } @Override public ImageTransfer getByDiskId(Guid diskId) { return getCallsHandler().executeRead("GetImageUploadsByDiskId", createEntityRowMapper(), createDiskIdParameterMapper(diskId)); } @Override protected MapSqlParameterSource createIdParameterMapper(Guid id) { return getCustomMapSqlParameterSource().addValue("command_id", id); } protected MapSqlParameterSource createDiskIdParameterMapper(Guid diskId) { return getCustomMapSqlParameterSource().addValue("disk_id", diskId); } @Override protected MapSqlParameterSource createFullParametersMapper(ImageTransfer entity) { MapSqlParameterSource mapper = createIdParameterMapper(entity.getId()); mapper.addValue("command_id", entity.getId()); mapper.addValue("command_type", entity.getCommandType()); mapper.addValue("phase", entity.getPhase()); mapper.addValue("last_updated", entity.getLastUpdated()); mapper.addValue("message", entity.getMessage()); mapper.addValue("vds_id", entity.getVdsId() == null ? null : entity.getVdsId().toString()); mapper.addValue("disk_id", entity.getDiskId() == null ? null : entity.getDiskId().toString()); mapper.addValue("imaged_ticket_id", entity.getImagedTicketId() == null ? null : entity.getImagedTicketId().toString()); mapper.addValue("proxy_uri", entity.getProxyUri()); mapper.addValue("signed_ticket", entity.getSignedTicket()); mapper.addValue("bytes_sent", entity.getBytesSent()); mapper.addValue("bytes_total", entity.getBytesTotal()); return mapper; } @Override protected RowMapper<ImageTransfer> createEntityRowMapper() { return (rs, rowNum) -> { ImageTransfer entity = new ImageTransfer(); entity.setId(getGuidDefaultEmpty(rs, "command_id")); entity.setCommandType(VdcActionType.forValue(rs.getInt("command_type"))); entity.setPhase(ImageTransferPhase.forValue(rs.getInt("phase"))); entity.setLastUpdated(new Date(rs.getTimestamp("last_updated").getTime())); entity.setMessage(rs.getString("message")); entity.setVdsId(getGuid(rs, "vds_id")); entity.setDiskId(getGuid(rs, "disk_id")); entity.setImagedTicketId(getGuid(rs, "imaged_ticket_id")); entity.setProxyUri(rs.getString("proxy_uri")); entity.setSignedTicket(rs.getString("signed_ticket")); entity.setBytesSent(rs.getLong("bytes_sent")); entity.setBytesTotal(rs.getLong("bytes_total")); return entity; }; } @Override public List<ImageTransfer> getAllWithQuery(String query) { return getJdbcTemplate().query(query, createEntityRowMapper()); } }