diff options
| author | 2015-01-13 23:25:04 -0500 | |
|---|---|---|
| committer | 2015-01-13 23:25:04 -0500 | |
| commit | 959cb5fd4f9586ec3bd265b452fe25fe1db82e3f (patch) | |
| tree | bdd8a2c52c2fe053ba3460614bde8542e5378dbe /src/cuchaz/enigma/analysis/MethodImplementationsTreeNode.java | |
| parent | got rid of gradle in favor of ivy+ssjb (diff) | |
| download | enigma-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.java | 66 |
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; | |||
| 20 | import cuchaz.enigma.mapping.MethodEntry; | 20 | import cuchaz.enigma.mapping.MethodEntry; |
| 21 | import cuchaz.enigma.mapping.Translator; | 21 | import cuchaz.enigma.mapping.Translator; |
| 22 | 22 | ||
| 23 | public class MethodImplementationsTreeNode extends DefaultMutableTreeNode | 23 | public 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 | } |