summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuchaz/enigma/analysis/FieldReferenceTreeNode.java')
-rw-r--r--src/cuchaz/enigma/analysis/FieldReferenceTreeNode.java65
1 files changed, 24 insertions, 41 deletions
diff --git a/src/cuchaz/enigma/analysis/FieldReferenceTreeNode.java b/src/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
index 2652f64..2173eea 100644
--- a/src/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
+++ b/src/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
@@ -16,24 +16,22 @@ import cuchaz.enigma.mapping.BehaviorEntry;
16import cuchaz.enigma.mapping.FieldEntry; 16import cuchaz.enigma.mapping.FieldEntry;
17import cuchaz.enigma.mapping.Translator; 17import cuchaz.enigma.mapping.Translator;
18 18
19public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements ReferenceTreeNode<FieldEntry,BehaviorEntry> 19public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements ReferenceTreeNode<FieldEntry,BehaviorEntry> {
20{ 20
21 private static final long serialVersionUID = -7934108091928699835L; 21 private static final long serialVersionUID = -7934108091928699835L;
22 22
23 private Translator m_deobfuscatingTranslator; 23 private Translator m_deobfuscatingTranslator;
24 private FieldEntry m_entry; 24 private FieldEntry m_entry;
25 private EntryReference<FieldEntry,BehaviorEntry> m_reference; 25 private EntryReference<FieldEntry,BehaviorEntry> m_reference;
26 private Access m_access; 26 private Access m_access;
27 27
28 public FieldReferenceTreeNode( Translator deobfuscatingTranslator, FieldEntry entry ) 28 public FieldReferenceTreeNode(Translator deobfuscatingTranslator, FieldEntry entry) {
29 {
30 m_deobfuscatingTranslator = deobfuscatingTranslator; 29 m_deobfuscatingTranslator = deobfuscatingTranslator;
31 m_entry = entry; 30 m_entry = entry;
32 m_reference = null; 31 m_reference = null;
33 } 32 }
34 33
35 private FieldReferenceTreeNode( Translator deobfuscatingTranslator, EntryReference<FieldEntry,BehaviorEntry> reference, Access access ) 34 private FieldReferenceTreeNode(Translator deobfuscatingTranslator, EntryReference<FieldEntry,BehaviorEntry> reference, Access access) {
36 {
37 m_deobfuscatingTranslator = deobfuscatingTranslator; 35 m_deobfuscatingTranslator = deobfuscatingTranslator;
38 m_entry = reference.entry; 36 m_entry = reference.entry;
39 m_reference = reference; 37 m_reference = reference;
@@ -41,56 +39,41 @@ public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements Re
41 } 39 }
42 40
43 @Override 41 @Override
44 public FieldEntry getEntry( ) 42 public FieldEntry getEntry() {
45 {
46 return m_entry; 43 return m_entry;
47 } 44 }
48 45
49 @Override 46 @Override
50 public EntryReference<FieldEntry,BehaviorEntry> getReference( ) 47 public EntryReference<FieldEntry,BehaviorEntry> getReference() {
51 {
52 return m_reference; 48 return m_reference;
53 } 49 }
54 50
55 @Override 51 @Override
56 public String toString( ) 52 public String toString() {
57 { 53 if (m_reference != null) {
58 if( m_reference != null ) 54 return String.format("%s (%s)", m_deobfuscatingTranslator.translateEntry(m_reference.context), m_access);
59 {
60 return String.format( "%s (%s)", m_deobfuscatingTranslator.translateEntry( m_reference.context ), m_access );
61 } 55 }
62 return m_deobfuscatingTranslator.translateEntry( m_entry ).toString(); 56 return m_deobfuscatingTranslator.translateEntry(m_entry).toString();
63 } 57 }
64 58
65 public void load( JarIndex index, boolean recurse ) 59 public void load(JarIndex index, boolean recurse) {
66 {
67 // get all the child nodes 60 // get all the child nodes
68 if( m_reference == null ) 61 if (m_reference == null) {
69 { 62 for (EntryReference<FieldEntry,BehaviorEntry> reference : index.getFieldReferences(m_entry)) {
70 for( EntryReference<FieldEntry,BehaviorEntry> reference : index.getFieldReferences( m_entry ) ) 63 add(new FieldReferenceTreeNode(m_deobfuscatingTranslator, reference, index.getAccess(m_entry)));
71 {
72 add( new FieldReferenceTreeNode( m_deobfuscatingTranslator, reference, index.getAccess( m_entry ) ) );
73 } 64 }
74 } 65 } else {
75 else 66 for (EntryReference<BehaviorEntry,BehaviorEntry> reference : index.getBehaviorReferences(m_reference.context)) {
76 { 67 add(new BehaviorReferenceTreeNode(m_deobfuscatingTranslator, reference, index.getAccess(m_reference.context)));
77 for( EntryReference<BehaviorEntry,BehaviorEntry> reference : index.getBehaviorReferences( m_reference.context ) )
78 {
79 add( new BehaviorReferenceTreeNode( m_deobfuscatingTranslator, reference, index.getAccess( m_reference.context ) ) );
80 } 68 }
81 } 69 }
82 70
83 if( recurse && children != null ) 71 if (recurse && children != null) {
84 { 72 for (Object node : children) {
85 for( Object node : children ) 73 if (node instanceof BehaviorReferenceTreeNode) {
86 { 74 ((BehaviorReferenceTreeNode)node).load(index, true);
87 if( node instanceof BehaviorReferenceTreeNode ) 75 } else if (node instanceof FieldReferenceTreeNode) {
88 { 76 ((FieldReferenceTreeNode)node).load(index, true);
89 ((BehaviorReferenceTreeNode)node).load( index, true );
90 }
91 else if( node instanceof FieldReferenceTreeNode )
92 {
93 ((FieldReferenceTreeNode)node).load( index, true );
94 } 77 }
95 } 78 }
96 } 79 }