Martin Peřina has uploaded a new change for review.

Change subject: gwt: Emulate random UUID generation in GWT
......................................................................

gwt: Emulate random UUID generation in GWT

Adds emulation of random UUID generation in GWT code that is translated to
Javascript. This will allow us to assign UUID in constructors of our
entities and use those UUIDs in equals/hashcode methods.

Change-Id: I5052240c07d8d3265b291de03fb92df672540fef
Signed-off-by: Martin Perina <mper...@redhat.com>
---
M 
frontend/webadmin/modules/gwt-extension/src/main/java/org/ovirt/engine/ui/uioverrides/java/util/UUID.java
1 file changed, 21 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/83/41983/1

diff --git 
a/frontend/webadmin/modules/gwt-extension/src/main/java/org/ovirt/engine/ui/uioverrides/java/util/UUID.java
 
b/frontend/webadmin/modules/gwt-extension/src/main/java/org/ovirt/engine/ui/uioverrides/java/util/UUID.java
index 885165a..06cbd03 100644
--- 
a/frontend/webadmin/modules/gwt-extension/src/main/java/org/ovirt/engine/ui/uioverrides/java/util/UUID.java
+++ 
b/frontend/webadmin/modules/gwt-extension/src/main/java/org/ovirt/engine/ui/uioverrides/java/util/UUID.java
@@ -71,6 +71,11 @@
      */
     private static final long serialVersionUID = -4856846361193249489L;
 
+    /**
+     * Characters used in to emulate "random" UUID generation
+     */
+    private static final char[] CHARS = 
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray();
+
     /*
      * The most significant 64 bits of this UUID.
      *
@@ -158,8 +163,22 @@
      * @return  a randomly generated <tt>UUID</tt>.
      */
     public static UUID randomUUID() {
-        //Not implemented.
-        return null;
+        char[] uuid = new char[36];
+        int r;
+
+        // rfc4122 requires these characters
+        uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
+        uuid[14] = '4';
+
+        // Fill in random data.  At i==19 set the high bits of clock sequence 
as
+        // per rfc4122, sec. 4.1.5
+        for (int i = 0; i < 36; i++) {
+            if (uuid[i] == 0) {
+                r = (int) (Math.random()*16);
+                uuid[i] = CHARS[(i == 19) ? (r & 0x3) | 0x8 : r & 0xf];
+            }
+        }
+        return new String(uuid);
     }
 
     /**


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

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

Reply via email to