summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/analysis/MethodInheritanceTreeNode.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/MethodInheritanceTreeNode.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/MethodInheritanceTreeNode.java')
-rw-r--r--src/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java80
1 files changed, 30 insertions, 50 deletions
diff --git a/src/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java b/src/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java
index bd91951..eba8d87 100644
--- a/src/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java
+++ b/src/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java
@@ -20,112 +20,92 @@ import cuchaz.enigma.mapping.ClassEntry;
20import cuchaz.enigma.mapping.MethodEntry; 20import cuchaz.enigma.mapping.MethodEntry;
21import cuchaz.enigma.mapping.Translator; 21import cuchaz.enigma.mapping.Translator;
22 22
23public class MethodInheritanceTreeNode extends DefaultMutableTreeNode 23public class MethodInheritanceTreeNode extends DefaultMutableTreeNode {
24{ 24
25 private static final long serialVersionUID = 1096677030991810007L; 25 private static final long serialVersionUID = 1096677030991810007L;
26 26
27 private Translator m_deobfuscatingTranslator; 27 private Translator m_deobfuscatingTranslator;
28 private MethodEntry m_entry; 28 private MethodEntry m_entry;
29 private boolean m_isImplemented; 29 private boolean m_isImplemented;
30 30
31 public MethodInheritanceTreeNode( Translator deobfuscatingTranslator, MethodEntry entry, boolean isImplemented ) 31 public MethodInheritanceTreeNode(Translator deobfuscatingTranslator, MethodEntry entry, boolean isImplemented) {
32 {
33 m_deobfuscatingTranslator = deobfuscatingTranslator; 32 m_deobfuscatingTranslator = deobfuscatingTranslator;
34 m_entry = entry; 33 m_entry = entry;
35 m_isImplemented = isImplemented; 34 m_isImplemented = isImplemented;
36 } 35 }
37 36
38 public MethodEntry getMethodEntry( ) 37 public MethodEntry getMethodEntry() {
39 {
40 return m_entry; 38 return m_entry;
41 } 39 }
42 40
43 public String getDeobfClassName( ) 41 public String getDeobfClassName() {
44 { 42 return m_deobfuscatingTranslator.translateClass(m_entry.getClassName());
45 return m_deobfuscatingTranslator.translateClass( m_entry.getClassName() );
46 } 43 }
47 44
48 public String getDeobfMethodName( ) 45 public String getDeobfMethodName() {
49 { 46 return m_deobfuscatingTranslator.translate(m_entry);
50 return m_deobfuscatingTranslator.translate( m_entry );
51 } 47 }
52 48
53 public boolean isImplemented( ) 49 public boolean isImplemented() {
54 {
55 return m_isImplemented; 50 return m_isImplemented;
56 } 51 }
57 52
58 @Override 53 @Override
59 public String toString( ) 54 public String toString() {
60 {
61 String className = getDeobfClassName(); 55 String className = getDeobfClassName();
62 if( className == null ) 56 if (className == null) {
63 {
64 className = m_entry.getClassName(); 57 className = m_entry.getClassName();
65 } 58 }
66 59
67 if( !m_isImplemented ) 60 if (!m_isImplemented) {
68 {
69 return className; 61 return className;
70 } 62 } else {
71 else
72 {
73 String methodName = getDeobfMethodName(); 63 String methodName = getDeobfMethodName();
74 if( methodName == null ) 64 if (methodName == null) {
75 {
76 methodName = m_entry.getName(); 65 methodName = m_entry.getName();
77 } 66 }
78 return className + "." + methodName + "()"; 67 return className + "." + methodName + "()";
79 } 68 }
80 } 69 }
81 70
82 public void load( JarIndex index, boolean recurse ) 71 public void load(JarIndex index, boolean recurse) {
83 {
84 // get all the child nodes 72 // get all the child nodes
85 List<MethodInheritanceTreeNode> nodes = Lists.newArrayList(); 73 List<MethodInheritanceTreeNode> nodes = Lists.newArrayList();
86 for( String subclassName : index.getTranslationIndex().getSubclassNames( m_entry.getClassName() ) ) 74 for (String subclassName : index.getTranslationIndex().getSubclassNames(m_entry.getClassName())) {
87 {
88 MethodEntry methodEntry = new MethodEntry( 75 MethodEntry methodEntry = new MethodEntry(
89 new ClassEntry( subclassName ), 76 new ClassEntry(subclassName),
90 m_entry.getName(), 77 m_entry.getName(),
91 m_entry.getSignature() 78 m_entry.getSignature()
92 ); 79 );
93 nodes.add( new MethodInheritanceTreeNode( 80 nodes.add(new MethodInheritanceTreeNode(
94 m_deobfuscatingTranslator, 81 m_deobfuscatingTranslator,
95 methodEntry, 82 methodEntry,
96 index.containsObfBehavior( methodEntry ) 83 index.containsObfBehavior(methodEntry)
97 ) ); 84 ));
98 } 85 }
99 86
100 // add them to this node 87 // add them to this node
101 for( MethodInheritanceTreeNode node : nodes ) 88 for (MethodInheritanceTreeNode node : nodes) {
102 { 89 this.add(node);
103 this.add( node );
104 } 90 }
105 91
106 if( recurse ) 92 if (recurse) {
107 { 93 for (MethodInheritanceTreeNode node : nodes) {
108 for( MethodInheritanceTreeNode node : nodes ) 94 node.load(index, true);
109 {
110 node.load( index, true );
111 } 95 }
112 } 96 }
113 } 97 }
114 98
115 public static MethodInheritanceTreeNode findNode( MethodInheritanceTreeNode node, MethodEntry entry ) 99 public static MethodInheritanceTreeNode findNode(MethodInheritanceTreeNode node, MethodEntry entry) {
116 {
117 // is this the node? 100 // is this the node?
118 if( node.getMethodEntry().equals( entry ) ) 101 if (node.getMethodEntry().equals(entry)) {
119 {
120 return node; 102 return node;
121 } 103 }
122 104
123 // recurse 105 // recurse
124 for( int i=0; i<node.getChildCount(); i++ ) 106 for (int i = 0; i < node.getChildCount(); i++) {
125 { 107 MethodInheritanceTreeNode foundNode = findNode((MethodInheritanceTreeNode)node.getChildAt(i), entry);
126 MethodInheritanceTreeNode foundNode = findNode( (MethodInheritanceTreeNode)node.getChildAt( i ), entry ); 108 if (foundNode != null) {
127 if( foundNode != null )
128 {
129 return foundNode; 109 return foundNode;
130 } 110 }
131 } 111 }