Martin Betak has uploaded a new change for review.

Change subject: dal: Refactor VmStatic and VmTemplate Daos
......................................................................

dal: Refactor VmStatic and VmTemplate Daos

Extracted common fields from parameter sources of VmStatic and
VmTemplate to new VmBaseDaoDbFacade.

This new class also inheriths DefaultGenericDaoDbFacade to eliminate
trivial implementations of get, update and delete in both
DaoDbImpls.

Change-Id: Ia8c02c11ededf4dfba67e5cc8598ae90155d7eb5
Signed-off-by: Martin Betak <mbe...@redhat.com>
---
D 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAODbFacade.java
A 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmBaseDaoDbFacade.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java
5 files changed, 178 insertions(+), 229 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/44/29544/1

diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java
deleted file mode 100644
index f310981..0000000
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.ovirt.engine.core.dal.dbbroker;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-import org.ovirt.engine.core.common.businessentities.BootSequence;
-import org.ovirt.engine.core.common.businessentities.DisplayType;
-import org.ovirt.engine.core.common.businessentities.MigrationSupport;
-import org.ovirt.engine.core.common.businessentities.OriginType;
-import org.ovirt.engine.core.common.businessentities.SerialNumberPolicy;
-import org.ovirt.engine.core.common.businessentities.SsoMethod;
-import org.ovirt.engine.core.common.businessentities.UsbPolicy;
-import org.ovirt.engine.core.common.businessentities.VmBase;
-import org.ovirt.engine.core.common.businessentities.VmType;
-import org.ovirt.engine.core.compat.Guid;
-import org.ovirt.engine.core.dao.BaseDAODbFacade;
-import org.springframework.jdbc.core.RowMapper;
-
-/**
- * The common basic rowmapper for properties in VmBase.
- *  @param <T> a subclass of VmBase.
- */
-public abstract class AbstractVmRowMapper<T extends VmBase> implements 
RowMapper<T> {
-
-    protected final void map(final ResultSet rs, final T entity) throws 
SQLException {
-        entity.setMemSizeMb(rs.getInt("mem_size_mb"));
-        entity.setOsId(rs.getInt("os"));
-        entity.setNumOfMonitors(rs.getInt("num_of_monitors"));
-        entity.setSingleQxlPci(rs.getBoolean("single_qxl_pci"));
-        
entity.setDefaultDisplayType(DisplayType.forValue(rs.getInt("default_display_type")));
-        entity.setDescription(rs.getString("description"));
-        entity.setComment(rs.getString("free_text_comment"));
-        
entity.setCreationDate(DbFacadeUtils.fromDate(rs.getTimestamp("creation_date")));
-        entity.setNumOfSockets(rs.getInt("num_of_sockets"));
-        entity.setCpuPerSocket(rs.getInt("cpu_per_socket"));
-        entity.setTimeZone(rs.getString("time_zone"));
-        entity.setVmType(VmType.forValue(rs.getInt("vm_type")));
-        entity.setUsbPolicy(UsbPolicy.forValue(rs.getInt("usb_policy")));
-        entity.setFailBack(rs.getBoolean("fail_back"));
-        
entity.setDefaultBootSequence(BootSequence.forValue(rs.getInt("default_boot_sequence")));
-        entity.setNiceLevel(rs.getInt("nice_level"));
-        entity.setCpuShares(rs.getInt("cpu_shares"));
-        entity.setPriority(rs.getInt("priority"));
-        entity.setAutoStartup(rs.getBoolean("auto_startup"));
-        entity.setStateless(rs.getBoolean("is_stateless"));
-        entity.setDbGeneration(rs.getLong("db_generation"));
-        entity.setIsoPath(rs.getString("iso_path"));
-        entity.setOrigin(OriginType.forValue(rs.getInt("origin")));
-        entity.setKernelUrl(rs.getString("kernel_url"));
-        entity.setKernelParams(rs.getString("kernel_params"));
-        entity.setInitrdUrl(rs.getString("initrd_url"));
-        entity.setSmartcardEnabled(rs.getBoolean("is_smartcard_enabled"));
-        entity.setDeleteProtected(rs.getBoolean("is_delete_protected"));
-        entity.setSsoMethod(SsoMethod.fromString(rs.getString("sso_method")));
-        entity.setTunnelMigration((Boolean) rs.getObject("tunnel_migration"));
-        entity.setVncKeyboardLayout(rs.getString("vnc_keyboard_layout"));
-        entity.setRunAndPause(rs.getBoolean("is_run_and_pause"));
-        
entity.setCreatedByUserId(Guid.createGuidFromString(rs.getString("created_by_user_id")));
-        entity.setMigrationDowntime((Integer) 
rs.getObject("migration_downtime"));
-        entity.setSerialNumberPolicy(SerialNumberPolicy.forValue((Integer) 
rs.getObject("serial_number_policy")));
-        entity.setCustomSerialNumber(rs.getString("custom_serial_number"));
-        entity.setBootMenuEnabled(rs.getBoolean("is_boot_menu_enabled"));
-        
entity.setSpiceFileTransferEnabled(rs.getBoolean("is_spice_file_transfer_enabled"));
-        
entity.setSpiceCopyPasteEnabled(rs.getBoolean("is_spice_copy_paste_enabled"));
-        
entity.setMigrationSupport(MigrationSupport.forValue(rs.getInt("migration_support")));
-        entity.setDedicatedVmForVds(BaseDAODbFacade.getGuid(rs, 
"dedicated_vm_for_vds"));
-        entity.setMinAllocatedMem(rs.getInt("min_allocated_mem"));
-        entity.setQuotaId(BaseDAODbFacade.getGuid(rs, "quota_id"));
-    }
-
-}
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAODbFacade.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAODbFacade.java
index 373f410..b17fc06 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAODbFacade.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAODbFacade.java
@@ -153,7 +153,7 @@
      * @return a {@link Guid} representing the UUID in the column, or the 
default value if it was <code>null</code>.
      * @throws SQLException If resultSet does not contain columnName or its 
value cannot be cast to {@link UUID}.
      */
-    public static Guid getGuid(ResultSet resultSet, String columnName) throws 
SQLException {
+    protected static Guid getGuid(ResultSet resultSet, String columnName) 
throws SQLException {
         return getGuid(resultSet, columnName, null);
     }
 
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmBaseDaoDbFacade.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmBaseDaoDbFacade.java
new file mode 100644
index 0000000..5a83bbf
--- /dev/null
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmBaseDaoDbFacade.java
@@ -0,0 +1,125 @@
+package org.ovirt.engine.core.dao;
+
+import org.ovirt.engine.core.common.businessentities.BootSequence;
+import org.ovirt.engine.core.common.businessentities.DisplayType;
+import org.ovirt.engine.core.common.businessentities.MigrationSupport;
+import org.ovirt.engine.core.common.businessentities.OriginType;
+import org.ovirt.engine.core.common.businessentities.SerialNumberPolicy;
+import org.ovirt.engine.core.common.businessentities.SsoMethod;
+import org.ovirt.engine.core.common.businessentities.UsbPolicy;
+import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.core.common.businessentities.VmType;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dal.dbbroker.DbFacadeUtils;
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+public abstract class VmBaseDaoDbFacade<T extends VmBase> extends 
DefaultGenericDaoDbFacade<T, Guid> {
+    public VmBaseDaoDbFacade(String entityStoredProcedureName) {
+        super(entityStoredProcedureName);
+    }
+
+    protected MapSqlParameterSource createBaseParametersMapper(T entity) {
+        return createIdParameterMapper(entity.getId())
+                .addValue("description", entity.getDescription())
+                .addValue("free_text_comment", entity.getComment())
+                .addValue("creation_date", entity.getCreationDate())
+                .addValue("mem_size_mb", entity.getMemSizeMb())
+                .addValue("vnc_keyboard_layout", entity.getVncKeyboardLayout())
+                .addValue("tunnel_migration", entity.getTunnelMigration())
+                .addValue("vds_group_id", entity.getVdsGroupId())
+                .addValue("num_of_sockets", entity.getNumOfSockets())
+                .addValue("cpu_per_socket", entity.getCpuPerSocket())
+                .addValue("os", entity.getOsId())
+                .addValue("num_of_monitors", entity.getNumOfMonitors())
+                .addValue("single_qxl_pci", entity.getSingleQxlPci())
+                .addValue("allow_console_reconnect", 
entity.isAllowConsoleReconnect())
+                .addValue("vm_type", entity.getVmType())
+                .addValue("priority", entity.getPriority())
+                .addValue("auto_startup", entity.isAutoStartup())
+                .addValue("is_stateless", entity.isStateless())
+                .addValue("is_smartcard_enabled", entity.isSmartcardEnabled())
+                .addValue("is_delete_protected", entity.isDeleteProtected())
+                .addValue("sso_method", entity.getSsoMethod().toString())
+                .addValue("iso_path", entity.getIsoPath())
+                .addValue("usb_policy", entity.getUsbPolicy())
+                .addValue("time_zone", entity.getTimeZone())
+                .addValue("fail_back", entity.isFailBack())
+                .addValue("nice_level", entity.getNiceLevel())
+                .addValue("cpu_shares", entity.getCpuShares())
+                .addValue("default_boot_sequence", 
entity.getDefaultBootSequence())
+                .addValue("default_display_type", 
entity.getDefaultDisplayType())
+                .addValue("origin", entity.getOrigin())
+                .addValue("initrd_url", entity.getInitrdUrl())
+                .addValue("kernel_url", entity.getKernelUrl())
+                .addValue("kernel_params", entity.getKernelParams())
+                .addValue("quota_id", entity.getQuotaId())
+                .addValue("migration_support", 
entity.getMigrationSupport().getValue())
+                .addValue("dedicated_vm_for_vds", 
entity.getDedicatedVmForVds())
+                .addValue("min_allocated_mem", entity.getMinAllocatedMem())
+                .addValue("is_run_and_pause", entity.isRunAndPause())
+                .addValue("created_by_user_id", entity.getCreatedByUserId())
+                .addValue("migration_downtime", entity.getMigrationDowntime())
+                .addValue("serial_number_policy", 
entity.getSerialNumberPolicy() == null ? null : 
entity.getSerialNumberPolicy().getValue())
+                .addValue("custom_serial_number", 
entity.getCustomSerialNumber())
+                .addValue("is_boot_menu_enabled", entity.isBootMenuEnabled())
+                .addValue("is_spice_file_transfer_enabled", 
entity.isSpiceFileTransferEnabled())
+                .addValue("is_spice_copy_paste_enabled", 
entity.isSpiceCopyPasteEnabled());
+    }
+
+    /**
+     * The common basic rowmapper for properties in VmBase.
+     *  @param <T> a subclass of VmBase.
+     */
+    protected abstract static class AbstractVmRowMapper<T extends VmBase> 
implements RowMapper<T> {
+
+        protected final void map(final ResultSet rs, final T entity) throws 
SQLException {
+            entity.setMemSizeMb(rs.getInt("mem_size_mb"));
+            entity.setOsId(rs.getInt("os"));
+            entity.setNumOfMonitors(rs.getInt("num_of_monitors"));
+            entity.setSingleQxlPci(rs.getBoolean("single_qxl_pci"));
+            
entity.setDefaultDisplayType(DisplayType.forValue(rs.getInt("default_display_type")));
+            entity.setDescription(rs.getString("description"));
+            entity.setComment(rs.getString("free_text_comment"));
+            
entity.setCreationDate(DbFacadeUtils.fromDate(rs.getTimestamp("creation_date")));
+            entity.setNumOfSockets(rs.getInt("num_of_sockets"));
+            entity.setCpuPerSocket(rs.getInt("cpu_per_socket"));
+            entity.setTimeZone(rs.getString("time_zone"));
+            entity.setVmType(VmType.forValue(rs.getInt("vm_type")));
+            entity.setUsbPolicy(UsbPolicy.forValue(rs.getInt("usb_policy")));
+            entity.setFailBack(rs.getBoolean("fail_back"));
+            
entity.setDefaultBootSequence(BootSequence.forValue(rs.getInt("default_boot_sequence")));
+            entity.setNiceLevel(rs.getInt("nice_level"));
+            entity.setCpuShares(rs.getInt("cpu_shares"));
+            entity.setPriority(rs.getInt("priority"));
+            entity.setAutoStartup(rs.getBoolean("auto_startup"));
+            entity.setStateless(rs.getBoolean("is_stateless"));
+            entity.setDbGeneration(rs.getLong("db_generation"));
+            entity.setIsoPath(rs.getString("iso_path"));
+            entity.setOrigin(OriginType.forValue(rs.getInt("origin")));
+            entity.setKernelUrl(rs.getString("kernel_url"));
+            entity.setKernelParams(rs.getString("kernel_params"));
+            entity.setInitrdUrl(rs.getString("initrd_url"));
+            entity.setSmartcardEnabled(rs.getBoolean("is_smartcard_enabled"));
+            entity.setDeleteProtected(rs.getBoolean("is_delete_protected"));
+            
entity.setSsoMethod(SsoMethod.fromString(rs.getString("sso_method")));
+            entity.setTunnelMigration((Boolean) 
rs.getObject("tunnel_migration"));
+            entity.setVncKeyboardLayout(rs.getString("vnc_keyboard_layout"));
+            entity.setRunAndPause(rs.getBoolean("is_run_and_pause"));
+            
entity.setCreatedByUserId(Guid.createGuidFromString(rs.getString("created_by_user_id")));
+            entity.setMigrationDowntime((Integer) 
rs.getObject("migration_downtime"));
+            entity.setSerialNumberPolicy(SerialNumberPolicy.forValue((Integer) 
rs.getObject("serial_number_policy")));
+            entity.setCustomSerialNumber(rs.getString("custom_serial_number"));
+            entity.setBootMenuEnabled(rs.getBoolean("is_boot_menu_enabled"));
+            
entity.setSpiceFileTransferEnabled(rs.getBoolean("is_spice_file_transfer_enabled"));
+            
entity.setSpiceCopyPasteEnabled(rs.getBoolean("is_spice_copy_paste_enabled"));
+            
entity.setMigrationSupport(MigrationSupport.forValue(rs.getInt("migration_support")));
+            entity.setDedicatedVmForVds(getGuid(rs, "dedicated_vm_for_vds"));
+            entity.setMinAllocatedMem(rs.getInt("min_allocated_mem"));
+            entity.setQuotaId(getGuid(rs, "quota_id"));
+        }
+    }
+}
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java
index 7116e85..197f74a 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java
@@ -10,19 +10,16 @@
 import org.ovirt.engine.core.common.businessentities.VmStatic;
 import org.ovirt.engine.core.common.utils.customprop.VmPropertiesUtils;
 import org.ovirt.engine.core.compat.Guid;
-import org.ovirt.engine.core.dal.dbbroker.AbstractVmRowMapper;
 import org.springframework.jdbc.core.RowMapper;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
 
-public class VmStaticDAODbFacadeImpl extends BaseDAODbFacade implements 
VmStaticDAO {
+public class VmStaticDAODbFacadeImpl extends VmBaseDaoDbFacade<VmStatic> 
implements VmStaticDAO {
     public static final Integer USE_LATEST_VERSION_NUMBER_INDICATOR = null;
     public static final Integer DONT_USE_LATEST_VERSION_NUMBER_INDICATOR = 1;
 
-    @Override
-    public VmStatic get(Guid id) {
-        return getCallsHandler().executeRead("GetVmStaticByVmGuid",
-                VMStaticRowMapper.instance,
-                getIdParamterSource(id));
+    public VmStaticDAODbFacadeImpl() {
+        super("VmStatic");
+        setProcedureNameForGet("GetVmStaticByVmGuid");
     }
 
     @Override
@@ -31,81 +28,30 @@
     }
 
     @Override
-    public void save(VmStatic vm) {
-        getCallsHandler().executeModification("InsertVmStatic", 
getFullParameterSource(vm));
-
-    }
-
-    @Override
-    public void update(VmStatic vm) {
-        getCallsHandler().executeModification("UpdateVmStatic", 
getFullParameterSource(vm));
-    }
-
-    private MapSqlParameterSource getFullParameterSource(VmStatic vm) {
-        return getIdParamterSource(vm.getId())
-                .addValue("description", vm.getDescription())
-                .addValue("free_text_comment", vm.getComment())
-                .addValue("mem_size_mb", vm.getMemSizeMb())
-                .addValue("os", vm.getOsId())
-                .addValue("vds_group_id", vm.getVdsGroupId())
+    protected MapSqlParameterSource createFullParametersMapper(VmStatic vm) {
+        return createBaseParametersMapper(vm)
                 .addValue("vm_name", vm.getName())
                 .addValue("vmt_guid", vm.getVmtGuid())
-                .addValue("creation_date", vm.getCreationDate())
-                .addValue("num_of_monitors", vm.getNumOfMonitors())
-                .addValue("single_qxl_pci", vm.getSingleQxlPci())
                 .addValue("is_initialized", vm.isInitialized())
-                .addValue("num_of_sockets", vm.getNumOfSockets())
-                .addValue("cpu_per_socket", vm.getCpuPerSocket())
-                .addValue("usb_policy", vm.getUsbPolicy())
-                .addValue("time_zone", vm.getTimeZone())
-                .addValue("auto_startup", vm.isAutoStartup())
-                .addValue("is_stateless", vm.isStateless())
-                .addValue("is_smartcard_enabled", vm.isSmartcardEnabled())
-                .addValue("is_delete_protected", vm.isDeleteProtected())
-                .addValue("sso_method", vm.getSsoMethod().toString())
-                .addValue("dedicated_vm_for_vds", vm.getDedicatedVmForVds())
-                .addValue("fail_back", vm.isFailBack())
-                .addValue("vm_type", vm.getVmType())
-                .addValue("nice_level", vm.getNiceLevel())
-                .addValue("cpu_shares", vm.getCpuShares())
-                .addValue("default_boot_sequence",
-                        vm.getDefaultBootSequence())
-                .addValue("default_display_type", vm.getDefaultDisplayType())
-                .addValue("priority", vm.getPriority())
-                .addValue("iso_path", vm.getIsoPath())
-                .addValue("origin", vm.getOrigin())
-                .addValue("initrd_url", vm.getInitrdUrl())
-                .addValue("kernel_url", vm.getKernelUrl())
-                .addValue("kernel_params", vm.getKernelParams())
-                .addValue("migration_support",
-                        vm.getMigrationSupport().getValue())
                 .addValue("predefined_properties", 
vm.getPredefinedProperties())
                 .addValue("userdefined_properties",
                         vm.getUserDefinedProperties())
-                .addValue("min_allocated_mem", vm.getMinAllocatedMem())
-                .addValue("quota_id", vm.getQuotaId())
-                .addValue("allow_console_reconnect", 
vm.isAllowConsoleReconnect())
                 .addValue("cpu_pinning", vm.getCpuPinning())
                 .addValue("host_cpu_flags", vm.isUseHostCpuFlags())
-                .addValue("tunnel_migration", vm.getTunnelMigration())
-                .addValue("vnc_keyboard_layout", vm.getVncKeyboardLayout())
-                .addValue("is_run_and_pause", vm.isRunAndPause())
-                .addValue("created_by_user_id", vm.getCreatedByUserId())
                 .addValue("instance_type_id", vm.getInstanceTypeId())
                 .addValue("image_type_id", vm.getImageTypeId())
                 .addValue("original_template_name", 
vm.getOriginalTemplateName())
                 .addValue("original_template_id", vm.getOriginalTemplateGuid())
-                .addValue("migration_downtime", vm.getMigrationDowntime())
                 .addValue("template_version_number", vm.isUseLatestVersion() ?
                         USE_LATEST_VERSION_NUMBER_INDICATOR : 
DONT_USE_LATEST_VERSION_NUMBER_INDICATOR)
-                .addValue("serial_number_policy", vm.getSerialNumberPolicy() 
== null ? null : vm.getSerialNumberPolicy().getValue())
-                .addValue("custom_serial_number", vm.getCustomSerialNumber())
-                .addValue("is_boot_menu_enabled", vm.isBootMenuEnabled())
                 .addValue("numatune_mode",
                         vm.getNumaTuneMode() == null ? 
NumaTuneMode.PREFERRED.getValue() : vm.getNumaTuneMode()
-                                .getValue())
-                .addValue("is_spice_file_transfer_enabled", 
vm.isSpiceFileTransferEnabled())
-                .addValue("is_spice_copy_paste_enabled", 
vm.isSpiceCopyPasteEnabled());
+                                .getValue());
+    }
+
+    @Override
+    protected RowMapper<VmStatic> createEntityRowMapper() {
+        return VMStaticRowMapper.instance;
     }
 
     @Override
@@ -115,13 +61,13 @@
 
     public void remove(Guid id, boolean removePermissions) {
         getCallsHandler().executeModification("DeleteVmStatic",
-                getIdParamterSource(id)
+                createIdParameterMapper(id)
                         .addValue("remove_permissions", removePermissions));
     }
 
-    private MapSqlParameterSource getIdParamterSource(Guid id) {
-        return getCustomMapSqlParameterSource()
-                .addValue("vm_guid", id);
+    @Override
+    protected MapSqlParameterSource createIdParameterMapper(Guid id) {
+        return getCustomMapSqlParameterSource().addValue("vm_guid", id);
     }
 
     @Override
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java
index b37a9ad..f1bdb07 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java
@@ -16,14 +16,18 @@
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.VmTemplateStatus;
 import org.ovirt.engine.core.compat.Guid;
-import org.ovirt.engine.core.dal.dbbroker.AbstractVmRowMapper;
 import org.springframework.jdbc.core.RowMapper;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
 
 /**
  * <code>VmTemplateDAODbFacadeImpl</code> provides a concrete implementation 
of {@link VmTemplateDAO}.
  */
-public class VmTemplateDAODbFacadeImpl extends BaseDAODbFacade implements 
VmTemplateDAO {
+public class VmTemplateDAODbFacadeImpl extends VmBaseDaoDbFacade<VmTemplate> 
implements VmTemplateDAO {
+
+    public VmTemplateDAODbFacadeImpl() {
+        super("VmTemplate");
+        setProcedureNameForRemove("DeleteVmTemplates");
+    }
 
     @Override
     public VmTemplate get(Guid id) {
@@ -51,17 +55,16 @@
     @Override
     public VmTemplate get(Guid id, Guid userID, boolean isFiltered) {
         return getCallsHandler().executeRead("GetVmTemplateByVmtGuid",
-                VMTemplateRowMapper.instance,
-                getCustomMapSqlParameterSource()
-                        .addValue("vmt_guid", id).addValue("user_id", 
userID).addValue("is_filtered", isFiltered));
+                                             VMTemplateRowMapper.instance,
+                                             
createIdParameterMapper(id).addValue("user_id", userID).addValue("is_filtered", 
isFiltered));
     }
 
     @Override
     public VmTemplate getByName(String name, Guid userID, boolean isFiltered) {
         return getCallsHandler().executeRead("GetVmTemplateByVmtName",
-                VMTemplateRowMapper.instance,
-                getCustomMapSqlParameterSource()
-                        .addValue("vmt_name", name).addValue("user_id", 
userID).addValue("is_filtered", isFiltered));
+                                             VMTemplateRowMapper.instance,
+                                             getCustomMapSqlParameterSource()
+                                                     .addValue("vmt_name", 
name).addValue("user_id", userID).addValue("is_filtered", isFiltered));
     }
 
     @Override
@@ -72,18 +75,18 @@
     @Override
     public List<VmTemplate> getAll(Guid userID, boolean isFiltered, 
VmEntityType entityType) {
         return getCallsHandler().executeReadList("GetAllFromVmTemplates",
-                VMTemplateRowMapper.instance,
-                getCustomMapSqlParameterSource()
-                        .addValue("entity_type", entityType.name())
-                        .addValue("user_id", userID)
-                        .addValue("is_filtered", isFiltered));
+                                                 VMTemplateRowMapper.instance,
+                                                 
getCustomMapSqlParameterSource()
+                                                         
.addValue("entity_type", entityType.name())
+                                                         .addValue("user_id", 
userID)
+                                                         
.addValue("is_filtered", isFiltered));
     }
 
     @Override
     public List<VmTemplate> getVmTemplatesByIds(List<Guid> templatesIds) {
         return getCallsHandler().executeReadList("GetVmTemplatesByIds",
-                VMTemplateRowMapper.instance,
-                getCustomMapSqlParameterSource().addValue("vm_templates_ids", 
StringUtils.join(templatesIds, ',')));
+                                                 VMTemplateRowMapper.instance,
+                                                 
getCustomMapSqlParameterSource().addValue("vm_templates_ids", 
StringUtils.join(templatesIds, ',')));
     }
 
     @Override
@@ -94,11 +97,11 @@
     @Override
     public List<VmTemplate> getAllForStorageDomain(Guid storageDomain, Guid 
userID, boolean isFiltered) {
         return 
getCallsHandler().executeReadList("GetVmTemplatesByStorageDomainId",
-                VMTemplateRowMapper.instance,
-                getCustomMapSqlParameterSource()
-                        .addValue("storage_domain_id", storageDomain)
-                        .addValue("user_id", userID)
-                        .addValue("is_filtered", isFiltered));
+                                                 VMTemplateRowMapper.instance,
+                                                 
getCustomMapSqlParameterSource()
+                                                         
.addValue("storage_domain_id", storageDomain)
+                                                         .addValue("user_id", 
userID)
+                                                         
.addValue("is_filtered", isFiltered));
     }
 
     @Override
@@ -151,89 +154,30 @@
     @Override
     public List<VmTemplate> getAllTemplatesWithDisksOnOtherStorageDomain(Guid 
storageDomainGuid) {
         return 
getCallsHandler().executeReadList("GetAllVmTemplatesWithDisksOnOtherStorageDomain",
-                VMTemplateRowMapper.instance,
-                getCustomMapSqlParameterSource().addValue("storage_domain_id", 
storageDomainGuid));
+                                                 VMTemplateRowMapper.instance,
+                                                 
getCustomMapSqlParameterSource().addValue("storage_domain_id", 
storageDomainGuid));
     }
 
     @Override
-    public void save(VmTemplate template) {
-        getCallsHandler().executeModification("InsertVmTemplate", 
getInsertOrUpdateParameters(template));
-    }
-
-    private MapSqlParameterSource getInsertOrUpdateParameters(VmTemplate 
template) {
-        return getCustomMapSqlParameterSource()
+    protected MapSqlParameterSource createFullParametersMapper(VmTemplate 
template) {
+        return createBaseParametersMapper(template)
                 .addValue("child_count", template.getChildCount())
-                .addValue("creation_date", template.getCreationDate())
-                .addValue("description", template.getDescription())
-                .addValue("free_text_comment", template.getComment())
-                .addValue("mem_size_mb", template.getMemSizeMb())
                 .addValue("name", template.getName())
-                .addValue("num_of_sockets", template.getNumOfSockets())
-                .addValue("cpu_per_socket", template.getCpuPerSocket())
-                .addValue("os", template.getOsId())
-                .addValue("vmt_guid", template.getId())
-                .addValue("vds_group_id", template.getVdsGroupId())
-                .addValue("num_of_monitors", template.getNumOfMonitors())
-                .addValue("single_qxl_pci", template.getSingleQxlPci())
-                .addValue("allow_console_reconnect", 
template.isAllowConsoleReconnect())
                 .addValue("status", template.getStatus())
-                .addValue("usb_policy", template.getUsbPolicy())
-                .addValue("time_zone", template.getTimeZone())
-                .addValue("fail_back", template.isFailBack())
-                .addValue("vm_type", template.getVmType())
-                .addValue("nice_level", template.getNiceLevel())
-                .addValue("cpu_shares", template.getCpuShares())
-                .addValue("default_boot_sequence",
-                        template.getDefaultBootSequence())
-                .addValue("default_display_type",
-                        template.getDefaultDisplayType())
-                .addValue("priority", template.getPriority())
-                .addValue("auto_startup", template.isAutoStartup())
-                .addValue("is_stateless", template.isStateless())
-                .addValue("is_smartcard_enabled", 
template.isSmartcardEnabled())
-                .addValue("is_delete_protected", template.isDeleteProtected())
-                .addValue("sso_method", template.getSsoMethod().toString())
-                .addValue("iso_path", template.getIsoPath())
-                .addValue("origin", template.getOrigin())
-                .addValue("initrd_url", template.getInitrdUrl())
-                .addValue("kernel_url", template.getKernelUrl())
-                .addValue("kernel_params", template.getKernelParams())
                 .addValue("is_disabled", template.isDisabled())
-                .addValue("quota_id", template.getQuotaId())
-                .addValue("migration_support", 
template.getMigrationSupport().getValue())
-                .addValue("dedicated_vm_for_vds", 
template.getDedicatedVmForVds())
-                .addValue("tunnel_migration", template.getTunnelMigration())
-                .addValue("vnc_keyboard_layout", 
template.getVncKeyboardLayout())
-                .addValue("min_allocated_mem", template.getMinAllocatedMem())
-                .addValue("is_run_and_pause", template.isRunAndPause())
-                .addValue("created_by_user_id", template.getCreatedByUserId())
                 .addValue("template_type", template.getTemplateType().name())
-                .addValue("migration_downtime", 
template.getMigrationDowntime())
                 .addValue("base_template_id", template.getBaseTemplateId())
-                .addValue("template_version_name", 
template.getTemplateVersionName())
-                .addValue("serial_number_policy", 
template.getSerialNumberPolicy() == null ? null : 
template.getSerialNumberPolicy().getValue())
-                .addValue("custom_serial_number", 
template.getCustomSerialNumber())
-                .addValue("is_boot_menu_enabled", template.isBootMenuEnabled())
-                .addValue("is_spice_file_transfer_enabled", 
template.isSpiceFileTransferEnabled())
-                .addValue("is_spice_copy_paste_enabled", 
template.isSpiceCopyPasteEnabled());
+                .addValue("template_version_name", 
template.getTemplateVersionName());
     }
 
     @Override
-    public void update(VmTemplate template) {
-        getCallsHandler().executeModification("UpdateVmTemplate", 
getInsertOrUpdateParameters(template));
+    protected MapSqlParameterSource createIdParameterMapper(Guid id) {
+        return getCustomMapSqlParameterSource().addValue("vmt_guid", id);
     }
 
     @Override
     public void updateStatus(Guid id, VmTemplateStatus status) {
-        getCallsHandler().executeModification("UpdateVmTemplateStatus", 
getCustomMapSqlParameterSource()
-                .addValue("vmt_guid", id)
-                .addValue("status", status));
-    }
-
-    @Override
-    public void remove(Guid id) {
-        getCallsHandler().executeModification("DeleteVmTemplates", 
getCustomMapSqlParameterSource()
-                .addValue("vmt_guid", id));
+        getCallsHandler().executeModification("UpdateVmTemplateStatus", 
createIdParameterMapper(id).addValue("status", status));
     }
 
     @Override
@@ -313,6 +257,11 @@
         }
     }
 
+    @Override
+    protected RowMapper<VmTemplate> createEntityRowMapper() {
+        return VMTemplateRowMapper.instance;
+    }
+
     private static class VMTemplateWithPlugInfo {
 
         public VmTemplate getVmTemplate() {


-- 
To view, visit http://gerrit.ovirt.org/29544
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia8c02c11ededf4dfba67e5cc8598ae90155d7eb5
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Betak <mbe...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to