UUIDGenerator.java
2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package com.it.tool;
import java.net.InetAddress;
import java.util.UUID;
public class UUIDGenerator {
private static final int IP;
private static short counter;
private static final int JVM;
static {
int ipadd;
try {
ipadd = toInt(InetAddress.getLocalHost().getAddress());
} catch (Exception var2) {
ipadd = 0;
}
IP = ipadd;
counter = 0;
JVM = (int)(System.currentTimeMillis() >>> 8);
}
public UUIDGenerator() {
}
public static String generate() {
return (new StringBuilder(32)).append(format(getIP())).append(format(getJVM())).append(format(getHiTime())).append(format(getLoTime())).append(format(getCount())).toString();
}
public static String creatUUID() {
String temp = UUID.randomUUID().toString();
String result = temp.replaceAll("-", "");
return result;
}
private static final String format(int intval) {
String formatted = Integer.toHexString(intval);
StringBuilder buf = new StringBuilder("00000000");
buf.replace(8 - formatted.length(), 8, formatted);
return buf.toString();
}
private static final String format(short shortval) {
String formatted = Integer.toHexString(shortval);
StringBuilder buf = new StringBuilder("0000");
buf.replace(4 - formatted.length(), 4, formatted);
return buf.toString();
}
private static final int getJVM() {
return JVM;
}
private static final short getCount() {
Class var0 = UUIDGenerator.class;
synchronized(UUIDGenerator.class) {
if (counter < 0) {
counter = 0;
}
short var10000 = counter;
counter = (short)(var10000 + 1);
return var10000;
}
}
private static final int getIP() {
return IP;
}
private static final short getHiTime() {
return (short)((int)(System.currentTimeMillis() >>> 32));
}
private static final int getLoTime() {
return (int)System.currentTimeMillis();
}
private static final int toInt(byte[] bytes) {
int result = 0;
for(int i = 0; i < 4; ++i) {
result = (result << 8) - -128 + bytes[i];
}
return result;
}
}