Arik Hadas has uploaded a new change for review.

Change subject: core: use generics in import models
......................................................................

core: use generics in import models

VmBackupModel works with VM and TemplateBackupModel works with
VmTemplate as generic entities.

It is also used to reduce castings in ImportTemplateModel and
ImportVmFromExportDomainModel.

Change-Id: I3267d582c3f7067e15550c5b1e3f48e346248a9d
Signed-off-by: Arik Hadas <aha...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ManageBackupModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/TemplateBackupModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/VmBackupModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImportTemplateModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmFromExportDomainModel.java
5 files changed, 15 insertions(+), 30 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/48/40448/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ManageBackupModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ManageBackupModel.java
index 1ccc305..1e226cd 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ManageBackupModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ManageBackupModel.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.storage;
 
 import org.ovirt.engine.core.common.businessentities.ArchitectureType;
+import org.ovirt.engine.core.common.businessentities.BusinessEntity;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainSharedStatus;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
@@ -10,7 +11,7 @@
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
 
-public abstract class ManageBackupModel extends 
SearchableListModel<StorageDomain, Object>
+public abstract class ManageBackupModel<T extends BusinessEntity<?>> extends 
SearchableListModel<StorageDomain, T>
 {
 
     private UICommand restoreCommand;
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/TemplateBackupModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/TemplateBackupModel.java
index 5b2ef86..eaf73ec 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/TemplateBackupModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/TemplateBackupModel.java
@@ -59,7 +59,7 @@
 import com.google.inject.Inject;
 import com.google.inject.Provider;
 
-public class TemplateBackupModel extends ManageBackupModel {
+public class TemplateBackupModel extends ManageBackupModel<VmTemplate> {
     private ArrayList<Map.Entry<VmTemplate, List<DiskImage>>> extendedItems;
     private StoragePool pool;
     protected ImportTemplateModel importModel;
@@ -96,9 +96,7 @@
         model.setHelpTag(HelpTag.remove_backed_up_template);
         model.setHashName("remove_backed_up_template"); //$NON-NLS-1$
         ArrayList<String> items = new ArrayList<String>();
-        for (Object a : getSelectedItems())
-        {
-            VmTemplate template = (VmTemplate) a;
+        for (VmTemplate template : getSelectedItems()) {
             items.add(template.getName());
         }
         model.setItems(items);
@@ -139,9 +137,8 @@
                     return;
                 }
                 List<VM> vmsInExportDomain = retVal.getReturnValue();
-                List<VmTemplate> templates = Linq.<VmTemplate> 
cast(getSelectedItems());
                 HashMap<String, List<String>> problematicVmNames =
-                        getDependentVMsForTemplates(vmsInExportDomain, 
templates);
+                        getDependentVMsForTemplates(vmsInExportDomain, 
getSelectedItems());
                 if (!problematicVmNames.isEmpty()) {
                     
showRemoveTemplateWithDependentVMConfirmationWindow(problematicVmNames);
                 } else {
@@ -197,8 +194,7 @@
 
     private void removeTemplateBackup() {
         ArrayList<VdcActionParametersBase> prms = new 
ArrayList<VdcActionParametersBase>();
-        for (Object selectedItem : getSelectedItems()) {
-            VmTemplate template = (VmTemplate) selectedItem;
+        for (VmTemplate template : getSelectedItems()) {
             prms.add(new VmTemplateImportExportParameters(template.getId(),
                     getEntity().getId(),
                     pool.getId()));
@@ -376,7 +372,7 @@
         if (getEntity() == null || getEntity().getStorageDomainType() != 
StorageDomainType.ImportExport
                 || getEntity().getStorageDomainSharedStatus() != 
StorageDomainSharedStatus.Active)
         {
-            setItems(Collections.emptyList());
+            setItems(Collections.<VmTemplate>emptyList());
         }
         else
         {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/VmBackupModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/VmBackupModel.java
index eb6ce81..811cea8 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/VmBackupModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/VmBackupModel.java
@@ -51,7 +51,7 @@
 import com.google.inject.Inject;
 import com.google.inject.Provider;
 
-public class VmBackupModel extends ManageBackupModel {
+public class VmBackupModel extends ManageBackupModel<VM> {
 
     private VmAppListModel privateAppListModel;
     protected List<Object> objectsToClone;
@@ -107,8 +107,7 @@
         model.setHashName("remove_backed_up_vm"); //$NON-NLS-1$
 
         ArrayList<String> items = new ArrayList<String>();
-        for (Object item : getSelectedItems()) {
-            VM vm = (VM) item;
+        for (VM vm : getSelectedItems()) {
             items.add(vm.getName());
         }
         model.setItems(items);
@@ -140,8 +139,7 @@
                     VmBackupModel backupModel = (VmBackupModel) model;
                     ArrayList<VdcActionParametersBase> list =
                             new ArrayList<VdcActionParametersBase>();
-                    for (Object item : backupModel.getSelectedItems()) {
-                        VM vm = (VM) item;
+                    for (VM vm : backupModel.getSelectedItems()) {
                         list.add(new 
RemoveVmFromImportExportParameters(vm.getId(),
                                 backupModel.getEntity().getId(), 
pool.getId()));
                     }
@@ -387,8 +385,7 @@
                             StringBuilder importedVms = new StringBuilder();
                             int counter = 0;
                             boolean toShowConfirmWindow = false;
-                            for (Object item : getSelectedItems()) {
-                                VM vm = (VM) item;
+                            for (VM vm : getSelectedItems()) {
                                 if (retVals.get(counter) != null
                                         && 
retVals.get(counter).getCanDoAction()) {
                                     importedVms.append(vm.getName()).append(", 
"); //$NON-NLS-1$
@@ -439,7 +436,7 @@
         if (getEntity() == null
                 || getEntity().getStorageDomainType() != 
StorageDomainType.ImportExport
                 || getEntity().getStorageDomainSharedStatus() != 
StorageDomainSharedStatus.Active) {
-            setItems(Collections.emptyList());
+            setItems(Collections.<VM>emptyList());
         } else {
             AsyncQuery _asyncQuery = new AsyncQuery();
             _asyncQuery.setModel(this);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImportTemplateModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImportTemplateModel.java
index c36ce38..f329a4a 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImportTemplateModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImportTemplateModel.java
@@ -4,6 +4,7 @@
 import java.util.Collection;
 import java.util.List;
 
+import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.storage.Disk;
 import org.ovirt.engine.core.common.businessentities.storage.DiskImage;
@@ -70,11 +71,7 @@
         return searchPattern.substring(0, searchPattern.length() - 
orKey.length());
     }
 
-    @Override
-    public void setItems(final Collection<?> value, final Guid storageDomainId)
-    {
-        @SuppressWarnings({ "unchecked", "rawtypes" })
-        final List<VmTemplate> externalTemplates = (List<VmTemplate>) new 
ArrayList(value);
+    public void init(final Collection<VmTemplate> externalTemplates, final 
Guid storageDomainId) {
         Frontend.getInstance().runQuery(VdcQueryType.Search,
                 new SearchParameters(createSearchPattern(externalTemplates), 
SearchType.VmTemplate),
                 new AsyncQuery(this, new INewAsyncCallback() {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmFromExportDomainModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmFromExportDomainModel.java
index 5648a8e..75c29ed 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmFromExportDomainModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmFromExportDomainModel.java
@@ -198,10 +198,6 @@
         setDetailModels(list);
     }
 
-    public void init(List<?> value, final Guid storageDomainId) {
-        setItems(value, storageDomainId);
-    }
-
     protected void doInit(final Guid storageDomainId) {
        // get Storage pool
        AsyncDataProvider.getInstance().getDataCentersByStorageDomain(new 
AsyncQuery(this, new INewAsyncCallback() {
@@ -634,9 +630,7 @@
         return searchPattern.substring(0, searchPattern.length() - 
orKey.length());
     }
 
-    public void setItems(final Collection<?> value, final Guid 
storageDomainId) {
-        @SuppressWarnings({ "unchecked", "rawtypes" })
-        final List<VM> externalVms = (List<VM>) new ArrayList(value);
+    public void init(final List<VM> externalVms, final Guid storageDomainId) {
         Frontend.getInstance().runQuery(VdcQueryType.Search,
                 new SearchParameters(createSearchPattern(externalVms), 
SearchType.VM),
                 new AsyncQuery(this, new INewAsyncCallback() {


-- 
To view, visit https://gerrit.ovirt.org/40448
To unsubscribe, visit https://gerrit.ovirt.org/settings

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

Reply via email to