summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/bytecode/AccessFlags.java
diff options
context:
space:
mode:
authorGravatar Gegy2019-01-24 14:48:32 +0200
committerGravatar Adrian Siekierka2019-01-24 13:48:32 +0100
commit00fcd0550fcdda621c2e4662f6ddd55ce673b931 (patch)
tree6f9e4c24dbcc6d118fceec56adf7bf9d747a485c /src/main/java/cuchaz/enigma/bytecode/AccessFlags.java
parentmark as 0.13.0-SNAPSHOT for preliminary development (diff)
downloadenigma-fork-00fcd0550fcdda621c2e4662f6ddd55ce673b931.tar.gz
enigma-fork-00fcd0550fcdda621c2e4662f6ddd55ce673b931.tar.xz
enigma-fork-00fcd0550fcdda621c2e4662f6ddd55ce673b931.zip
[WIP] Mapping rework (#91)
* Move packages * Mapping & entry refactor: first pass * Fix deobf -> obf tree remapping * Resolve various issues * Give all entries the potential for parents and treat inner classes as children * Deobf UI tree elements * Tests pass * Sort mapping output * Fix delta tracking * Index separation and first pass for #97 * Keep track of remapped jar index * Fix child entries not being remapped * Drop non-root entries * Track dropped mappings * Fix enigma mapping ordering * EntryTreeNode interface * Small tweaks * Naive full index remap on rename * Entries can resolve to more than one root entry * Support alternative resolution strategies * Bridge method resolution * Tests pass * Fix mappings being used where there are none * Fix methods with different descriptors being considered unique. closes #89
Diffstat (limited to 'src/main/java/cuchaz/enigma/bytecode/AccessFlags.java')
-rw-r--r--src/main/java/cuchaz/enigma/bytecode/AccessFlags.java105
1 files changed, 0 insertions, 105 deletions
diff --git a/src/main/java/cuchaz/enigma/bytecode/AccessFlags.java b/src/main/java/cuchaz/enigma/bytecode/AccessFlags.java
deleted file mode 100644
index 31c8691..0000000
--- a/src/main/java/cuchaz/enigma/bytecode/AccessFlags.java
+++ /dev/null
@@ -1,105 +0,0 @@
1package cuchaz.enigma.bytecode;
2
3import cuchaz.enigma.analysis.Access;
4import org.objectweb.asm.Opcodes;
5
6import java.lang.reflect.Modifier;
7
8public class AccessFlags {
9 private int flags;
10
11 public AccessFlags(int flags) {
12 this.flags = flags;
13 }
14
15 public boolean isPrivate() {
16 return Modifier.isPrivate(this.flags);
17 }
18
19 public boolean isProtected() {
20 return Modifier.isProtected(this.flags);
21 }
22
23 public boolean isPublic() {
24 return Modifier.isPublic(this.flags);
25 }
26
27 public boolean isSynthetic() {
28 return (this.flags & Opcodes.ACC_SYNTHETIC) != 0;
29 }
30
31 public boolean isStatic() {
32 return Modifier.isStatic(this.flags);
33 }
34
35 public boolean isEnum() {
36 return (flags & Opcodes.ACC_ENUM) != 0;
37 }
38
39 public boolean isBridge() {
40 return (flags & Opcodes.ACC_BRIDGE) != 0;
41 }
42
43 public AccessFlags setPrivate() {
44 this.setVisibility(Opcodes.ACC_PRIVATE);
45 return this;
46 }
47
48 public AccessFlags setProtected() {
49 this.setVisibility(Opcodes.ACC_PROTECTED);
50 return this;
51 }
52
53 public AccessFlags setPublic() {
54 this.setVisibility(Opcodes.ACC_PUBLIC);
55 return this;
56 }
57
58 public AccessFlags setBridge() {
59 flags |= Opcodes.ACC_BRIDGE;
60 return this;
61 }
62
63 @Deprecated
64 public AccessFlags setBridged() {
65 return setBridge();
66 }
67
68 public void setVisibility(int visibility) {
69 this.resetVisibility();
70 this.flags |= visibility;
71 }
72
73 private void resetVisibility() {
74 this.flags &= ~(Opcodes.ACC_PRIVATE | Opcodes.ACC_PROTECTED | Opcodes.ACC_PUBLIC);
75 }
76
77 public int getFlags() {
78 return this.flags;
79 }
80
81 @Override
82 public boolean equals(Object obj) {
83 return obj instanceof AccessFlags && ((AccessFlags) obj).flags == flags;
84 }
85
86 @Override
87 public int hashCode() {
88 return flags;
89 }
90
91 @Override
92 public String toString() {
93 StringBuilder builder = new StringBuilder(Access.get(this).toString().toLowerCase());
94 if (isStatic()) {
95 builder.append(" static");
96 }
97 if (isSynthetic()) {
98 builder.append(" synthetic");
99 }
100 if (isBridge()) {
101 builder.append(" bridge");
102 }
103 return builder.toString();
104 }
105}