package org.ovirt.engine.core.dao; import java.sql.ResultSet; import java.sql.SQLException; import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.common.businessentities.storage.BaseDisk; import org.ovirt.engine.core.common.businessentities.storage.DiskAlignment; import org.ovirt.engine.core.common.businessentities.storage.DiskContentType; import org.ovirt.engine.core.common.businessentities.storage.PropagateErrors; import org.ovirt.engine.core.common.businessentities.storage.ScsiGenericIO; import org.ovirt.engine.core.dal.dbbroker.DbFacadeUtils; import org.springframework.jdbc.core.RowMapper; public abstract class AbstractBaseDiskRowMapper<T extends BaseDisk> implements RowMapper<T> { @Override public T mapRow(ResultSet rs, int rowNum) throws SQLException { T disk = createDiskEntity(); disk.setId(BaseDao.getGuidDefaultEmpty(rs, "disk_id")); disk.setDiskAlias(rs.getString("disk_alias")); disk.setDiskDescription(rs.getString("disk_description")); disk.setWipeAfterDelete(rs.getBoolean("wipe_after_delete")); String propagateErrors = rs.getString("propagate_errors"); if (!StringUtils.isEmpty(propagateErrors)) { disk.setPropagateErrors(PropagateErrors.valueOf(propagateErrors)); } disk.setShareable(rs.getBoolean("shareable")); disk.setSgio(ScsiGenericIO.forValue(rs.getInt("sgio"))); disk.setAlignment(DiskAlignment.forValue(rs.getInt("alignment"))); disk.setLastAlignmentScan(DbFacadeUtils.fromDate(rs.getTimestamp("last_alignment_scan"))); disk.setContentType(DiskContentType.forValue(rs.getInt("disk_content_type"))); return disk; } /** * @return The disk entity that is being initialized. */ protected abstract T createDiskEntity(); }