-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathutils.gradle
39 lines (31 loc) · 890 Bytes
/
utils.gradle
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
class Utils {
static def r = new Random(System.currentTimeMillis())
}
static String getString(String string) {
byte[] b = string.getBytes()
int c = b.length
StringBuilder sb = new StringBuilder()
sb.append("(new Object() {")
sb.append("int t;")
sb.append("public String toString() {")
sb.append("byte[] buf = new byte[")
sb.append(c)
sb.append("];")
for (int i = 0; i < c; ++i) {
int t = Utils.r.nextInt()
int f = Utils.r.nextInt(24) + 1
t = (t & ~(0xff << f)) | (b[i] << f)
sb.append("t = ")
sb.append(t)
sb.append(";")
sb.append("buf[")
sb.append(i)
sb.append("] = (byte) (t >>> ")
sb.append(f)
sb.append(");")
}
sb.append("return new String(buf);")
sb.append("}}.toString())")
return sb.toString()
}
ext.getString = this.&getString