summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
diff options
context:
space:
mode:
authorGravatar gegy10002018-05-19 17:02:46 +0200
committerGravatar gegy10002018-05-19 17:02:46 +0200
commit2b2249e873c4adfd2dd6e8f1f2489ccd9f6aa021 (patch)
tree14c8b1e806449ace1641a1dbafae162855f79670 /src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
parentFix build (diff)
downloadenigma-fork-2b2249e873c4adfd2dd6e8f1f2489ccd9f6aa021.tar.gz
enigma-fork-2b2249e873c4adfd2dd6e8f1f2489ccd9f6aa021.tar.xz
enigma-fork-2b2249e873c4adfd2dd6e8f1f2489ccd9f6aa021.zip
Initial port to ASM
Diffstat (limited to 'src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java')
-rw-r--r--src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java b/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
index 34d2eff..3e467db 100644
--- a/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
+++ b/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
@@ -11,17 +11,15 @@
11 11
12package cuchaz.enigma.analysis; 12package cuchaz.enigma.analysis;
13 13
14import cuchaz.enigma.mapping.BehaviorEntry; 14import cuchaz.enigma.mapping.*;
15import cuchaz.enigma.mapping.FieldEntry;
16import cuchaz.enigma.mapping.Translator;
17 15
18import javax.swing.tree.DefaultMutableTreeNode; 16import javax.swing.tree.DefaultMutableTreeNode;
19 17
20public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements ReferenceTreeNode<FieldEntry, BehaviorEntry> { 18public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements ReferenceTreeNode<FieldEntry, MethodDefEntry> {
21 19
22 private Translator deobfuscatingTranslator; 20 private Translator deobfuscatingTranslator;
23 private FieldEntry entry; 21 private FieldEntry entry;
24 private EntryReference<FieldEntry, BehaviorEntry> reference; 22 private EntryReference<FieldEntry, MethodDefEntry> reference;
25 private Access access; 23 private Access access;
26 24
27 public FieldReferenceTreeNode(Translator deobfuscatingTranslator, FieldEntry entry) { 25 public FieldReferenceTreeNode(Translator deobfuscatingTranslator, FieldEntry entry) {
@@ -30,7 +28,7 @@ public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements Re
30 this.reference = null; 28 this.reference = null;
31 } 29 }
32 30
33 private FieldReferenceTreeNode(Translator deobfuscatingTranslator, EntryReference<FieldEntry, BehaviorEntry> reference, Access access) { 31 private FieldReferenceTreeNode(Translator deobfuscatingTranslator, EntryReference<FieldEntry, MethodDefEntry> reference, Access access) {
34 this.deobfuscatingTranslator = deobfuscatingTranslator; 32 this.deobfuscatingTranslator = deobfuscatingTranslator;
35 this.entry = reference.entry; 33 this.entry = reference.entry;
36 this.reference = reference; 34 this.reference = reference;
@@ -43,34 +41,34 @@ public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements Re
43 } 41 }
44 42
45 @Override 43 @Override
46 public EntryReference<FieldEntry, BehaviorEntry> getReference() { 44 public EntryReference<FieldEntry, MethodDefEntry> getReference() {
47 return this.reference; 45 return this.reference;
48 } 46 }
49 47
50 @Override 48 @Override
51 public String toString() { 49 public String toString() {
52 if (this.reference != null) { 50 if (this.reference != null) {
53 return String.format("%s (%s)", this.deobfuscatingTranslator.translateEntry(this.reference.context), this.access); 51 return String.format("%s (%s)", this.deobfuscatingTranslator.getTranslatedMethodDef(this.reference.context), this.access);
54 } 52 }
55 return this.deobfuscatingTranslator.translateEntry(this.entry).toString(); 53 return deobfuscatingTranslator.getTranslatedField(entry).getName();
56 } 54 }
57 55
58 public void load(JarIndex index, boolean recurse) { 56 public void load(JarIndex index, boolean recurse) {
59 // get all the child nodes 57 // get all the child nodes
60 if (this.reference == null) { 58 if (this.reference == null) {
61 for (EntryReference<FieldEntry, BehaviorEntry> reference : index.getFieldReferences(this.entry)) { 59 for (EntryReference<FieldEntry, MethodDefEntry> reference : index.getFieldReferences(this.entry)) {
62 add(new FieldReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccess(this.entry))); 60 add(new FieldReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccess(this.entry)));
63 } 61 }
64 } else { 62 } else {
65 for (EntryReference<BehaviorEntry, BehaviorEntry> reference : index.getBehaviorReferences(this.reference.context)) { 63 for (EntryReference<MethodEntry, MethodDefEntry> reference : index.getMethodReferences(this.reference.context)) {
66 add(new BehaviorReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccess(this.reference.context))); 64 add(new MethodReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccess(this.reference.context)));
67 } 65 }
68 } 66 }
69 67
70 if (recurse && children != null) { 68 if (recurse && children != null) {
71 for (Object node : children) { 69 for (Object node : children) {
72 if (node instanceof BehaviorReferenceTreeNode) { 70 if (node instanceof MethodReferenceTreeNode) {
73 ((BehaviorReferenceTreeNode) node).load(index, true); 71 ((MethodReferenceTreeNode) node).load(index, true);
74 } else if (node instanceof FieldReferenceTreeNode) { 72 } else if (node instanceof FieldReferenceTreeNode) {
75 ((FieldReferenceTreeNode) node).load(index, true); 73 ((FieldReferenceTreeNode) node).load(index, true);
76 } 74 }