aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/Uuid.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/Uuid.java')
-rwxr-xr-xsrc/main/java/io/trygvis/esper/testing/Uuid.java88
1 files changed, 48 insertions, 40 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/Uuid.java b/src/main/java/io/trygvis/esper/testing/Uuid.java
index 64fd6e5..a884959 100755
--- a/src/main/java/io/trygvis/esper/testing/Uuid.java
+++ b/src/main/java/io/trygvis/esper/testing/Uuid.java
@@ -17,6 +17,10 @@ public class Uuid {
return uuid.toString();
}
+ public UUID toUUID() {
+ return uuid;
+ }
+
public String toString() {
return toStringBase64();
}
@@ -89,67 +93,71 @@ public class Uuid {
}
if (s.length() == 22) {
- long most = 0;
- int i = 0;
- int shift = 64;
- for(; i < 10; i++) {
- char c = s.charAt(i);
- long b = alphabetR[c];
-
- if(b == 0) {
- throw new IllegalArgumentException(s);
- }
-
- b--;
+ return parseBase64(s);
+ }
- shift -= 6;
+ throw new IllegalArgumentException("Illegal: " + s);
+ }
- long l = b << shift;
+ public static Uuid parseBase64(String s) {
+ long most = 0;
+ int i = 0;
+ int shift = 64;
+ for(; i < 10; i++) {
+ char c = s.charAt(i);
+ long b = alphabetR[c];
- most |= l;
+ if(b == 0) {
+ throw new IllegalArgumentException(s);
}
- long least;
-
- {
- char c = s.charAt(i++);
- long b = alphabetR[c];
+ b--;
- if (b == 0) {
- throw new IllegalArgumentException(s);
- }
+ shift -= 6;
- b--;
+ long l = b << shift;
- long l = b >> 2;
+ most |= l;
+ }
- most |= l;
+ long least;
- shift = 64 - 2;
+ {
+ char c = s.charAt(i++);
+ long b = alphabetR[c];
- least = (b & 0x03) << shift;
+ if (b == 0) {
+ throw new IllegalArgumentException(s);
}
- for(; i < 22; i++) {
- char c = s.charAt(i);
- long b = alphabetR[c];
+ b--;
+
+ long l = b >> 2;
+
+ most |= l;
- if(b == 0) {
- throw new IllegalArgumentException(s);
- }
+ shift = 64 - 2;
- b--;
+ least = (b & 0x03) << shift;
+ }
- shift -= 6;
+ for(; i < 22; i++) {
+ char c = s.charAt(i);
+ long b = alphabetR[c];
- long l = b << shift;
- least |= l;
+ if(b == 0) {
+ throw new IllegalArgumentException(s);
}
- return new Uuid(new UUID(most, least));
+ b--;
+
+ shift -= 6;
+
+ long l = b << Math.max(shift, 0);
+ least |= l;
}
- throw new IllegalArgumentException("Illegal: " + s);
+ return new Uuid(new UUID(most, least));
}
// http://en.wikipedia.org/wiki/Base64