Lior Vernia has uploaded a new change for review.

Change subject: core: Create PairQueryable ID without UUID serialization
......................................................................

core: Create PairQueryable ID without UUID serialization

As it turns out, serializing a UUID is a resource-consuming operation,
and is not in fact required to compute a unique ID for a PairQueryable
object. The mechanism is therefore swapped for a more efficient one,
while maintaining the form of the serialized ID (in case it is needed
somewhere, though that does not seem to be the case).

Change-Id: Ibf0776567c5ef7f20830c70617dc69806cce3a6b
Bug-Url: https://bugzilla.redhat.com/1123396
Signed-off-by: Lior Vernia <[email protected]>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/Pair.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/PairQueryable.java
2 files changed, 29 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/98/35198/1

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 d79b7e3..27a35ca 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
@@ -2,7 +2,7 @@
 
 import java.io.Serializable;
 
-public final class Pair<T, K> implements Serializable {
+public class Pair<T, K> implements Serializable {
     private static final long serialVersionUID = -6761191157220811690L;
 
     private T first;
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
index aacbf45..15bb464 100644
--- 
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
@@ -19,7 +19,7 @@
 
     private Pair<T, K> getPair() {
         if (pair == null) {
-            pair = new Pair<T, K>(null, null);
+            pair = new Pair<>(null, null);
         }
         return pair;
     }
@@ -66,14 +66,37 @@
         return true;
     }
 
-    public Object getQueryableId() {
-        return getMemberId(getFirst()) + '.' + getMemberId(getSecond());
+    @Override
+    public PairQueryableId getQueryableId() {
+        return new PairQueryableId(getMemberId(getFirst()), 
getMemberId(getSecond()));
     }
 
-    private String getMemberId(IVdcQueryable member) {
+    private Object getMemberId(IVdcQueryable member) {
         if (member != null) {
-            return member.getQueryableId().toString();
+            return member.getQueryableId();
         }
         return null;
     }
+
+    private static class PairQueryableId extends Pair<Object, Object> {
+
+        private static final long serialVersionUID = 3430689533159779008L;
+
+        public PairQueryableId() {
+            this(null, null);
+        }
+
+        public PairQueryableId(Object first, Object second) {
+            super(first, second);
+        }
+
+        @Override
+        public String toString() {
+            return serializeId(getFirst()) + '.' + serializeId(getSecond());
+        }
+
+        private String serializeId(Object id) {
+            return (id == null) ? null : id.toString();
+        }
+    }
 }


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

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

Reply via email to