blob: 0bfc59bdcaa51abc1b97258f089f8f29289fa09b (
plain) (
blame)
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
|
package cuchaz.enigma.bytecode;
import org.objectweb.asm.Opcodes;
import java.lang.reflect.Modifier;
public class AccessFlags {
private int flags;
public AccessFlags(int flags) {
this.flags = flags;
}
public boolean isPrivate() {
return Modifier.isPrivate(this.flags);
}
public boolean isProtected() {
return Modifier.isProtected(this.flags);
}
public boolean isPublic() {
return Modifier.isPublic(this.flags);
}
public boolean isSynthetic() {
return (this.flags & Opcodes.ACC_SYNTHETIC) != 0;
}
public boolean isStatic() {
return Modifier.isStatic(this.flags);
}
public boolean isEnum() {
return (flags & Opcodes.ACC_ENUM) != 0;
}
public AccessFlags setPrivate() {
this.setVisibility(Opcodes.ACC_PRIVATE);
return this;
}
public AccessFlags setProtected() {
this.setVisibility(Opcodes.ACC_PROTECTED);
return this;
}
public AccessFlags setPublic() {
this.setVisibility(Opcodes.ACC_PUBLIC);
return this;
}
public AccessFlags setBridged() {
flags |= Opcodes.ACC_BRIDGE;
return this;
}
public void setVisibility(int visibility) {
this.resetVisibility();
this.flags |= visibility;
}
private void resetVisibility() {
this.flags &= ~(Opcodes.ACC_PRIVATE | Opcodes.ACC_PROTECTED | Opcodes.ACC_PUBLIC);
}
public int getFlags() {
return this.flags;
}
@Override
public boolean equals(Object obj) {
return obj instanceof AccessFlags && ((AccessFlags) obj).flags == flags;
}
@Override
public int hashCode() {
return flags;
}
}
|