diff options
Diffstat (limited to 'src/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java')
| -rw-r--r-- | src/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java | 58 |
1 files changed, 22 insertions, 36 deletions
diff --git a/src/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java b/src/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java index d3fc9dc..b132305 100644 --- a/src/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java +++ b/src/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java | |||
| @@ -19,78 +19,64 @@ import com.google.common.collect.Lists; | |||
| 19 | import cuchaz.enigma.mapping.ClassEntry; | 19 | import cuchaz.enigma.mapping.ClassEntry; |
| 20 | import cuchaz.enigma.mapping.Translator; | 20 | import cuchaz.enigma.mapping.Translator; |
| 21 | 21 | ||
| 22 | public class ClassInheritanceTreeNode extends DefaultMutableTreeNode | 22 | public class ClassInheritanceTreeNode extends DefaultMutableTreeNode { |
| 23 | { | 23 | |
| 24 | private static final long serialVersionUID = 4432367405826178490L; | 24 | private static final long serialVersionUID = 4432367405826178490L; |
| 25 | 25 | ||
| 26 | private Translator m_deobfuscatingTranslator; | 26 | private Translator m_deobfuscatingTranslator; |
| 27 | private String m_obfClassName; | 27 | private String m_obfClassName; |
| 28 | 28 | ||
| 29 | public ClassInheritanceTreeNode( Translator deobfuscatingTranslator, String obfClassName ) | 29 | public ClassInheritanceTreeNode(Translator deobfuscatingTranslator, String obfClassName) { |
| 30 | { | ||
| 31 | m_deobfuscatingTranslator = deobfuscatingTranslator; | 30 | m_deobfuscatingTranslator = deobfuscatingTranslator; |
| 32 | m_obfClassName = obfClassName; | 31 | m_obfClassName = obfClassName; |
| 33 | } | 32 | } |
| 34 | 33 | ||
| 35 | public String getObfClassName( ) | 34 | public String getObfClassName() { |
| 36 | { | ||
| 37 | return m_obfClassName; | 35 | return m_obfClassName; |
| 38 | } | 36 | } |
| 39 | 37 | ||
| 40 | public String getDeobfClassName( ) | 38 | public String getDeobfClassName() { |
| 41 | { | 39 | return m_deobfuscatingTranslator.translateClass(m_obfClassName); |
| 42 | return m_deobfuscatingTranslator.translateClass( m_obfClassName ); | ||
| 43 | } | 40 | } |
| 44 | 41 | ||
| 45 | @Override | 42 | @Override |
| 46 | public String toString( ) | 43 | public String toString() { |
| 47 | { | ||
| 48 | String deobfClassName = getDeobfClassName(); | 44 | String deobfClassName = getDeobfClassName(); |
| 49 | if( deobfClassName != null ) | 45 | if (deobfClassName != null) { |
| 50 | { | ||
| 51 | return deobfClassName; | 46 | return deobfClassName; |
| 52 | } | 47 | } |
| 53 | return m_obfClassName; | 48 | return m_obfClassName; |
| 54 | } | 49 | } |
| 55 | 50 | ||
| 56 | public void load( TranslationIndex ancestries, boolean recurse ) | 51 | public void load(TranslationIndex ancestries, boolean recurse) { |
| 57 | { | ||
| 58 | // get all the child nodes | 52 | // get all the child nodes |
| 59 | List<ClassInheritanceTreeNode> nodes = Lists.newArrayList(); | 53 | List<ClassInheritanceTreeNode> nodes = Lists.newArrayList(); |
| 60 | for( String subclassName : ancestries.getSubclassNames( m_obfClassName ) ) | 54 | for (String subclassName : ancestries.getSubclassNames(m_obfClassName)) { |
| 61 | { | 55 | nodes.add(new ClassInheritanceTreeNode(m_deobfuscatingTranslator, subclassName)); |
| 62 | nodes.add( new ClassInheritanceTreeNode( m_deobfuscatingTranslator, subclassName ) ); | ||
| 63 | } | 56 | } |
| 64 | 57 | ||
| 65 | // add them to this node | 58 | // add them to this node |
| 66 | for( ClassInheritanceTreeNode node : nodes ) | 59 | for (ClassInheritanceTreeNode node : nodes) { |
| 67 | { | 60 | this.add(node); |
| 68 | this.add( node ); | ||
| 69 | } | 61 | } |
| 70 | 62 | ||
| 71 | if( recurse ) | 63 | if (recurse) { |
| 72 | { | 64 | for (ClassInheritanceTreeNode node : nodes) { |
| 73 | for( ClassInheritanceTreeNode node : nodes ) | 65 | node.load(ancestries, true); |
| 74 | { | ||
| 75 | node.load( ancestries, true ); | ||
| 76 | } | 66 | } |
| 77 | } | 67 | } |
| 78 | } | 68 | } |
| 79 | 69 | ||
| 80 | public static ClassInheritanceTreeNode findNode( ClassInheritanceTreeNode node, ClassEntry entry ) | 70 | public static ClassInheritanceTreeNode findNode(ClassInheritanceTreeNode node, ClassEntry entry) { |
| 81 | { | ||
| 82 | // is this the node? | 71 | // is this the node? |
| 83 | if( node.getObfClassName().equals( entry.getName() ) ) | 72 | if (node.getObfClassName().equals(entry.getName())) { |
| 84 | { | ||
| 85 | return node; | 73 | return node; |
| 86 | } | 74 | } |
| 87 | 75 | ||
| 88 | // recurse | 76 | // recurse |
| 89 | for( int i=0; i<node.getChildCount(); i++ ) | 77 | for (int i = 0; i < node.getChildCount(); i++) { |
| 90 | { | 78 | ClassInheritanceTreeNode foundNode = findNode((ClassInheritanceTreeNode)node.getChildAt(i), entry); |
| 91 | ClassInheritanceTreeNode foundNode = findNode( (ClassInheritanceTreeNode)node.getChildAt( i ), entry ); | 79 | if (foundNode != null) { |
| 92 | if( foundNode != null ) | ||
| 93 | { | ||
| 94 | return foundNode; | 80 | return foundNode; |
| 95 | } | 81 | } |
| 96 | } | 82 | } |