Source code: org/bluej/core/UUID.java
1 package org.bluej.core;
2
3 public class UUID {
4 byte[] value;
5
6 public UUID(long uuidValue) {
7 if (uuidValue < 0 || uuidValue > 0xffffffffL)
8 throw new IllegalArgumentException("bad UUID value:" + uuidValue);
9 value = new byte[16];
10 for (int i = 0; i < 4; i++)
11 value[i] = (byte)(0xff & (uuidValue >> ((3-i)*8)));
12 for (int i = 4; i < 16; i++)
13 value[i] = UUIDUtils.baseUUID.value[i];
14 }
15 public UUID(String uuidValue) {
16 byte[] bytes = Utils.stringToBytes(uuidValue);
17 int noBytes = bytes.length;
18
19 value = new byte[16];
20 if (noBytes <= 4) {
21 for (int i = 0; i < 16; i++)
22 value[i] = UUIDUtils.baseUUID.value[i];
23 for (int i = 0; i < noBytes; i++)
24 value[3-i] = bytes[noBytes-1-i];
25 }
26 else if (noBytes <= 16) {
27 for (int i = 0; i < 16; i++)
28 value[i] = 0;
29 for (int i = 0; i < noBytes; i++)
30 value[15-i] = bytes[noBytes-1-i];
31 }
32 else {
33 throw new IllegalArgumentException("UUID value too long");
34 }
35 }
36
37 public String toString() {
38 StringBuffer buf = new StringBuffer();
39 for (int i = 0; i < 16; i++) {
40 int val = (0x0f & (value[i] >> 4));
41 buf.append((char)(val+(val < 10 ? '0' : 'A'-10)));
42 val = (0x0f & value[i]);
43 buf.append((char)(val+(val < 10 ? '0' : 'A'-10)));
44 }
45 return buf.toString();
46 }
47
48 public boolean equals(Object obj) {
49 if (obj instanceof UUID) {
50 UUID cmp = (UUID)obj;
51 for (int i = 0; i < 16; i++)
52 if (value[i] != cmp.value[i])
53 return false;
54 return true;
55 }
56 return false;
57 }
58 }