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