Muli Salem has uploaded a new change for review.

Change subject: core: PairQueryable Class
......................................................................

core: PairQueryable Class

This patch adds the PairQueryable class, to
enable returning a Pair as the return value of a Query.

Change-Id: Ic26f8c18245eb187a6ee20dcb2b9b9c03c3992bf
Signed-off-by: Muli Salem <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsAndNetworkInterfacesByNetworkIdQuery.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsGroupsAndNetworksByNetworkIdQuery.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsAndNetworkInterfacesByNetworkIdQueryTest.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsGroupsAndNetworksByNetworkIdQueryTest.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/Pair.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/PairQueryable.java
6 files changed, 85 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/33/8833/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsAndNetworkInterfacesByNetworkIdQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsAndNetworkInterfacesByNetworkIdQuery.java
index b1eae24..154b69e 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsAndNetworkInterfacesByNetworkIdQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsAndNetworkInterfacesByNetworkIdQuery.java
@@ -8,7 +8,7 @@
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VdsNetworkInterface;
 import org.ovirt.engine.core.common.queries.NetworkIdParameters;
-import org.ovirt.engine.core.common.utils.Pair;
+import org.ovirt.engine.core.common.utils.PairQueryable;
 import org.ovirt.engine.core.compat.Guid;
 
 /**
@@ -29,9 +29,10 @@
 
         final Map<Guid, VDS> vdsById = Entities.businessEntitiesById(vdsList);
 
-        List<Pair<VdsNetworkInterface, VDS>> vdsInterfaceVdsPairs = new 
ArrayList<Pair<VdsNetworkInterface, VDS>>();
+        List<PairQueryable<VdsNetworkInterface, VDS>> vdsInterfaceVdsPairs =
+                new ArrayList<PairQueryable<VdsNetworkInterface, VDS>>();
         for (VdsNetworkInterface vdsNetworkInterface : 
vdsNetworkInterfaceList) {
-            vdsInterfaceVdsPairs.add(new Pair(vdsNetworkInterface, 
vdsById.get(vdsNetworkInterface.getVdsId())));
+            vdsInterfaceVdsPairs.add(new PairQueryable(vdsNetworkInterface, 
vdsById.get(vdsNetworkInterface.getVdsId())));
         }
 
         getQueryReturnValue().setReturnValue(vdsInterfaceVdsPairs);
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsGroupsAndNetworksByNetworkIdQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsGroupsAndNetworksByNetworkIdQuery.java
index b5c1496..be8965d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsGroupsAndNetworksByNetworkIdQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsGroupsAndNetworksByNetworkIdQuery.java
@@ -10,7 +10,7 @@
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.network_cluster;
 import org.ovirt.engine.core.common.queries.NetworkIdParameters;
-import org.ovirt.engine.core.common.utils.Pair;
+import org.ovirt.engine.core.common.utils.PairQueryable;
 
 /**
  * A query to retrieve all VDSGroup-network_cluster pairs in the Storage Pool 
of the given Network. In case the Network
@@ -23,7 +23,8 @@
 
     @Override
     protected void executeQueryCommand() {
-        List<Pair<VDSGroup, network_cluster>> networkClusterPairs = new 
ArrayList<Pair<VDSGroup, network_cluster>>();
+        List<PairQueryable<VDSGroup, network_cluster>> networkClusterPairs =
+                new ArrayList<PairQueryable<VDSGroup, network_cluster>>();
 
         Network network = 
getDbFacade().getNetworkDao().get(getParameters().getNetworkId());
         if (network != null && network.getstorage_pool_id() != null) {
@@ -36,7 +37,7 @@
                     Entities.businessEntitiesById(networkClusters);
 
             for (VDSGroup vdsGroup : vdsGroups) {
-                networkClusterPairs.add(new Pair<VDSGroup, 
network_cluster>(vdsGroup,
+                networkClusterPairs.add(new PairQueryable<VDSGroup, 
network_cluster>(vdsGroup,
                         networkClustersById.get(new 
NetworkClusterId(vdsGroup.getId(), getParameters().getNetworkId()))));
             }
         }
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsAndNetworkInterfacesByNetworkIdQueryTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsAndNetworkInterfacesByNetworkIdQueryTest.java
index 6fb6adb..d4b6577 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsAndNetworkInterfacesByNetworkIdQueryTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsAndNetworkInterfacesByNetworkIdQueryTest.java
@@ -11,7 +11,7 @@
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VdsNetworkInterface;
 import org.ovirt.engine.core.common.queries.NetworkIdParameters;
-import org.ovirt.engine.core.common.utils.Pair;
+import org.ovirt.engine.core.common.utils.PairQueryable;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dao.InterfaceDAO;
 import org.ovirt.engine.core.dao.VdsDAO;
@@ -36,8 +36,9 @@
         setupVdsDao();
         setupVdsNetworkInterfaceDao();
 
-        Pair<VdsNetworkInterface, VDS> vdsInterfaceVdsPair = new 
Pair(vdsNetworkInterface, vds);
-        List<Pair<VdsNetworkInterface, VDS>> expected = 
Collections.singletonList(vdsInterfaceVdsPair);
+        PairQueryable<VdsNetworkInterface, VDS> vdsInterfaceVdsPair =
+                new PairQueryable<VdsNetworkInterface, 
VDS>(vdsNetworkInterface, vds);
+        List<PairQueryable<VdsNetworkInterface, VDS>> expected = 
Collections.singletonList(vdsInterfaceVdsPair);
 
         // Run the query
         GetVdsAndNetworkInterfacesByNetworkIdQuery<NetworkIdParameters> query 
= getQuery();
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsGroupsAndNetworksByNetworkIdQueryTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsGroupsAndNetworksByNetworkIdQueryTest.java
index 96f29d3..6428181 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsGroupsAndNetworksByNetworkIdQueryTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsGroupsAndNetworksByNetworkIdQueryTest.java
@@ -12,7 +12,7 @@
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.network_cluster;
 import org.ovirt.engine.core.common.queries.NetworkIdParameters;
-import org.ovirt.engine.core.common.utils.Pair;
+import org.ovirt.engine.core.common.utils.PairQueryable;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dao.NetworkClusterDAO;
 import org.ovirt.engine.core.dao.NetworkDAO;
@@ -48,8 +48,9 @@
         setupVdsGroupDao();
         setupNetworkClusterDao();
 
-        Pair<VDSGroup, network_cluster> networkClusterPair = new Pair(cluster, 
networkCluster);
-        List<Pair<VDSGroup, network_cluster>> expected = 
Collections.singletonList(networkClusterPair);
+        PairQueryable<VDSGroup, network_cluster> networkClusterPair =
+                new PairQueryable<VDSGroup, network_cluster>(cluster, 
networkCluster);
+        List<PairQueryable<VDSGroup, network_cluster>> expected = 
Collections.singletonList(networkClusterPair);
 
         // Run the query
         GetVdsGroupsAndNetworksByNetworkIdQuery<NetworkIdParameters> query = 
getQuery();
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/Pair.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/Pair.java
index 25039e8..9e83309 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/Pair.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/Pair.java
@@ -1,10 +1,6 @@
 package org.ovirt.engine.core.common.utils;
 
-import java.io.Serializable;
-
-public final class Pair<T, K> implements Serializable {
-    private static final long serialVersionUID = -6761191157220811690L;
-
+public class Pair<T, K> {
     private T first;
     private K second;
 
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/PairQueryable.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/PairQueryable.java
new file mode 100644
index 0000000..f8cbbe8
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/PairQueryable.java
@@ -0,0 +1,68 @@
+package org.ovirt.engine.core.common.utils;
+
+import org.ovirt.engine.core.common.businessentities.IVdcQueryable;
+
+/**
+ * A Pair that extends the {@link IVdcQueryable} class, to enable returning a 
Pair as the return value of a Query.
+ */
+public class PairQueryable<T, K> extends IVdcQueryable {
+    private static final long serialVersionUID = -8894728003078425184L;
+
+    private Pair<T, K> pair = new Pair<T, K>();
+
+    public PairQueryable() {
+    }
+
+    public PairQueryable(T first, K second) {
+        pair = new Pair<T, K>(first, second);
+    }
+
+    public Pair<T, K> getPair() {
+        return pair == null ? new Pair<T, K>(null, null) : pair;
+    }
+
+    public void setPair(Pair<T, K> pair) {
+        this.pair = pair;
+    }
+
+    public void setFirst(T value) {
+        getPair().setFirst(value);
+    }
+
+    public T getFirst() {
+        return getPair().getFirst();
+    }
+
+    public void setSecond(K value) {
+        getPair().setSecond(value);
+    }
+
+    public K getSecond() {
+        return getPair().getSecond();
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getPair() == null) ? 0 : 
getPair().hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        PairQueryable other = (PairQueryable) obj;
+        if (getPair() == null) {
+            if (other.getPair() != null)
+                return false;
+        } else if (!getPair().equals(other.getPair()))
+            return false;
+        return true;
+    }
+}


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic26f8c18245eb187a6ee20dcb2b9b9c03c3992bf
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Muli Salem <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to