Source code: org/bluej/core/UUIDUtils.java
1 package org.bluej.core;
2
3 public class UUIDUtils extends UUID {
4 public static final UUID baseUUID =
5 new UUID("0000000000001000800000805F9B34FB");
6
7 public UUIDUtils(byte[] data) {
8 super(0);
9 if (data.length == 2) {
10 value[2] = data[0];
11 value[3] = data[1];
12 }
13 else if (data.length == 4) {
14 for (int i = 0; i < 4; i++)
15 value[i] = data[i];
16 }
17 else if (data.length == 16) {
18 for (int i = 0; i < 16; i++)
19 value[i] = data[i];
20 }
21 else {
22 throw new IllegalArgumentException(
23 "UUID data len is " + data.length);
24 }
25 }
26 public UUIDUtils(UUID base) {
27 super(0);
28 for (int i = 0; i < 16; i++)
29 value[i] = base.value[i];
30 }
31
32 public byte[] getBytes() {
33 byte[] ret;
34 boolean isSmall = true;
35 for (int i = 4; isSmall && i < 16; i++)
36 if (value[i] != baseUUID.value[i])
37 isSmall = false;
38 if (isSmall) {
39 boolean isTiny = true;
40 for (int i = 0; i < 2; i++) {
41 if (value[i] != 0)
42 isTiny = false;
43 }
44 if (isTiny) {
45 ret = new byte[2];
46 ret[0] = value[2];
47 ret[1] = value[3];
48 }
49 else {
50 ret = new byte[4];
51 for (int i = 0; i < 4; i++)
52 ret[i] = value[i];
53 }
54 }
55 else {
56 ret = new byte[16];
57 for (int i = 0; i < 16; i++)
58 ret[i] = value[i];
59 }
60 return ret;
61 }
62 }