summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/analysis/BehaviorReferenceTreeNode.java
diff options
context:
space:
mode:
authorGravatar jeff2015-01-13 23:25:04 -0500
committerGravatar jeff2015-01-13 23:25:04 -0500
commit959cb5fd4f9586ec3bd265b452fe25fe1db82e3f (patch)
treebdd8a2c52c2fe053ba3460614bde8542e5378dbe /src/cuchaz/enigma/analysis/BehaviorReferenceTreeNode.java
parentgot rid of gradle in favor of ivy+ssjb (diff)
downloadenigma-fork-959cb5fd4f9586ec3bd265b452fe25fe1db82e3f.tar.gz
enigma-fork-959cb5fd4f9586ec3bd265b452fe25fe1db82e3f.tar.xz
enigma-fork-959cb5fd4f9586ec3bd265b452fe25fe1db82e3f.zip
source format change
don't hate me too much if you were planning a big merge. =P
Diffstat (limited to 'src/cuchaz/enigma/analysis/BehaviorReferenceTreeNode.java')
-rw-r--r--src/cuchaz/enigma/analysis/BehaviorReferenceTreeNode.java56
1 files changed, 21 insertions, 35 deletions
diff --git a/src/cuchaz/enigma/analysis/BehaviorReferenceTreeNode.java b/src/cuchaz/enigma/analysis/BehaviorReferenceTreeNode.java
index 20f1d47..9adac5e 100644
--- a/src/cuchaz/enigma/analysis/BehaviorReferenceTreeNode.java
+++ b/src/cuchaz/enigma/analysis/BehaviorReferenceTreeNode.java
@@ -21,8 +21,8 @@ import cuchaz.enigma.mapping.BehaviorEntry;
21import cuchaz.enigma.mapping.Entry; 21import cuchaz.enigma.mapping.Entry;
22import cuchaz.enigma.mapping.Translator; 22import cuchaz.enigma.mapping.Translator;
23 23
24public class BehaviorReferenceTreeNode extends DefaultMutableTreeNode implements ReferenceTreeNode<BehaviorEntry,BehaviorEntry> 24public class BehaviorReferenceTreeNode extends DefaultMutableTreeNode implements ReferenceTreeNode<BehaviorEntry,BehaviorEntry> {
25{ 25
26 private static final long serialVersionUID = -3658163700783307520L; 26 private static final long serialVersionUID = -3658163700783307520L;
27 27
28 private Translator m_deobfuscatingTranslator; 28 private Translator m_deobfuscatingTranslator;
@@ -30,15 +30,13 @@ public class BehaviorReferenceTreeNode extends DefaultMutableTreeNode implements
30 private EntryReference<BehaviorEntry,BehaviorEntry> m_reference; 30 private EntryReference<BehaviorEntry,BehaviorEntry> m_reference;
31 private Access m_access; 31 private Access m_access;
32 32
33 public BehaviorReferenceTreeNode( Translator deobfuscatingTranslator, BehaviorEntry entry ) 33 public BehaviorReferenceTreeNode(Translator deobfuscatingTranslator, BehaviorEntry entry) {
34 {
35 m_deobfuscatingTranslator = deobfuscatingTranslator; 34 m_deobfuscatingTranslator = deobfuscatingTranslator;
36 m_entry = entry; 35 m_entry = entry;
37 m_reference = null; 36 m_reference = null;
38 } 37 }
39 38
40 public BehaviorReferenceTreeNode( Translator deobfuscatingTranslator, EntryReference<BehaviorEntry,BehaviorEntry> reference, Access access ) 39 public BehaviorReferenceTreeNode(Translator deobfuscatingTranslator, EntryReference<BehaviorEntry,BehaviorEntry> reference, Access access) {
41 {
42 m_deobfuscatingTranslator = deobfuscatingTranslator; 40 m_deobfuscatingTranslator = deobfuscatingTranslator;
43 m_entry = reference.entry; 41 m_entry = reference.entry;
44 m_reference = reference; 42 m_reference = reference;
@@ -46,60 +44,48 @@ public class BehaviorReferenceTreeNode extends DefaultMutableTreeNode implements
46 } 44 }
47 45
48 @Override 46 @Override
49 public BehaviorEntry getEntry( ) 47 public BehaviorEntry getEntry() {
50 {
51 return m_entry; 48 return m_entry;
52 } 49 }
53 50
54 @Override 51 @Override
55 public EntryReference<BehaviorEntry,BehaviorEntry> getReference( ) 52 public EntryReference<BehaviorEntry,BehaviorEntry> getReference() {
56 {
57 return m_reference; 53 return m_reference;
58 } 54 }
59 55
60 @Override 56 @Override
61 public String toString( ) 57 public String toString() {
62 { 58 if (m_reference != null) {
63 if( m_reference != null ) 59 return String.format("%s (%s)", m_deobfuscatingTranslator.translateEntry(m_reference.context), m_access);
64 {
65 return String.format( "%s (%s)", m_deobfuscatingTranslator.translateEntry( m_reference.context ), m_access );
66 } 60 }
67 return m_deobfuscatingTranslator.translateEntry( m_entry ).toString(); 61 return m_deobfuscatingTranslator.translateEntry(m_entry).toString();
68 } 62 }
69 63
70 public void load( JarIndex index, boolean recurse ) 64 public void load(JarIndex index, boolean recurse) {
71 {
72 // get all the child nodes 65 // get all the child nodes
73 for( EntryReference<BehaviorEntry,BehaviorEntry> reference : index.getBehaviorReferences( m_entry ) ) 66 for (EntryReference<BehaviorEntry,BehaviorEntry> reference : index.getBehaviorReferences(m_entry)) {
74 { 67 add(new BehaviorReferenceTreeNode(m_deobfuscatingTranslator, reference, index.getAccess(m_entry)));
75 add( new BehaviorReferenceTreeNode( m_deobfuscatingTranslator, reference, index.getAccess( m_entry ) ) );
76 } 68 }
77 69
78 if( recurse && children != null ) 70 if (recurse && children != null) {
79 { 71 for (Object child : children) {
80 for( Object child : children ) 72 if (child instanceof BehaviorReferenceTreeNode) {
81 {
82 if( child instanceof BehaviorReferenceTreeNode )
83 {
84 BehaviorReferenceTreeNode node = (BehaviorReferenceTreeNode)child; 73 BehaviorReferenceTreeNode node = (BehaviorReferenceTreeNode)child;
85 74
86 // don't recurse into ancestor 75 // don't recurse into ancestor
87 Set<Entry> ancestors = Sets.newHashSet(); 76 Set<Entry> ancestors = Sets.newHashSet();
88 TreeNode n = (TreeNode)node; 77 TreeNode n = (TreeNode)node;
89 while( n.getParent() != null ) 78 while (n.getParent() != null) {
90 {
91 n = n.getParent(); 79 n = n.getParent();
92 if( n instanceof BehaviorReferenceTreeNode ) 80 if (n instanceof BehaviorReferenceTreeNode) {
93 { 81 ancestors.add( ((BehaviorReferenceTreeNode)n).getEntry());
94 ancestors.add( ((BehaviorReferenceTreeNode)n).getEntry() );
95 } 82 }
96 } 83 }
97 if( ancestors.contains( node.getEntry() ) ) 84 if (ancestors.contains(node.getEntry())) {
98 {
99 continue; 85 continue;
100 } 86 }
101 87
102 node.load( index, true ); 88 node.load(index, true);
103 } 89 }
104 } 90 }
105 } 91 }