summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/gui/GuiController.java
diff options
context:
space:
mode:
authorGravatar jeff2014-08-26 00:27:44 -0400
committerGravatar jeff2014-08-26 00:27:44 -0400
commit5f44aac70f59898197c2a7625b74f901c3b31106 (patch)
tree7d2cc2e48201c92867786793966f356810b464fa /src/cuchaz/enigma/gui/GuiController.java
parentwrote CheckCastIterator to try to do generic type inference. It's too hard to... (diff)
downloadenigma-fork-5f44aac70f59898197c2a7625b74f901c3b31106.tar.gz
enigma-fork-5f44aac70f59898197c2a7625b74f901c3b31106.tar.xz
enigma-fork-5f44aac70f59898197c2a7625b74f901c3b31106.zip
implemented proper support for interfaces
Diffstat (limited to 'src/cuchaz/enigma/gui/GuiController.java')
-rw-r--r--src/cuchaz/enigma/gui/GuiController.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/cuchaz/enigma/gui/GuiController.java b/src/cuchaz/enigma/gui/GuiController.java
index 90bce52..bd79e48 100644
--- a/src/cuchaz/enigma/gui/GuiController.java
+++ b/src/cuchaz/enigma/gui/GuiController.java
@@ -24,9 +24,11 @@ import com.strobel.decompiler.languages.java.ast.CompilationUnit;
24 24
25import cuchaz.enigma.Deobfuscator; 25import cuchaz.enigma.Deobfuscator;
26import cuchaz.enigma.analysis.BehaviorReferenceTreeNode; 26import cuchaz.enigma.analysis.BehaviorReferenceTreeNode;
27import cuchaz.enigma.analysis.ClassImplementationsTreeNode;
27import cuchaz.enigma.analysis.ClassInheritanceTreeNode; 28import cuchaz.enigma.analysis.ClassInheritanceTreeNode;
28import cuchaz.enigma.analysis.EntryReference; 29import cuchaz.enigma.analysis.EntryReference;
29import cuchaz.enigma.analysis.FieldReferenceTreeNode; 30import cuchaz.enigma.analysis.FieldReferenceTreeNode;
31import cuchaz.enigma.analysis.MethodImplementationsTreeNode;
30import cuchaz.enigma.analysis.MethodInheritanceTreeNode; 32import cuchaz.enigma.analysis.MethodInheritanceTreeNode;
31import cuchaz.enigma.analysis.SourceIndex; 33import cuchaz.enigma.analysis.SourceIndex;
32import cuchaz.enigma.analysis.Token; 34import cuchaz.enigma.analysis.Token;
@@ -182,6 +184,15 @@ public class GuiController
182 return ClassInheritanceTreeNode.findNode( rootNode, obfClassEntry ); 184 return ClassInheritanceTreeNode.findNode( rootNode, obfClassEntry );
183 } 185 }
184 186
187 public ClassImplementationsTreeNode getClassImplementations( ClassEntry deobfClassEntry )
188 {
189 ClassEntry obfClassEntry = m_deobfuscator.obfuscateEntry( deobfClassEntry );
190 return m_deobfuscator.getJarIndex().getClassImplementations(
191 m_deobfuscator.getTranslator( TranslationDirection.Deobfuscating ),
192 obfClassEntry
193 );
194 }
195
185 public MethodInheritanceTreeNode getMethodInheritance( MethodEntry deobfMethodEntry ) 196 public MethodInheritanceTreeNode getMethodInheritance( MethodEntry deobfMethodEntry )
186 { 197 {
187 MethodEntry obfMethodEntry = m_deobfuscator.obfuscateEntry( deobfMethodEntry ); 198 MethodEntry obfMethodEntry = m_deobfuscator.obfuscateEntry( deobfMethodEntry );
@@ -192,6 +203,20 @@ public class GuiController
192 return MethodInheritanceTreeNode.findNode( rootNode, obfMethodEntry ); 203 return MethodInheritanceTreeNode.findNode( rootNode, obfMethodEntry );
193 } 204 }
194 205
206 public MethodImplementationsTreeNode getMethodImplementations( MethodEntry deobfMethodEntry )
207 {
208 MethodEntry obfMethodEntry = m_deobfuscator.obfuscateEntry( deobfMethodEntry );
209 MethodImplementationsTreeNode rootNode = m_deobfuscator.getJarIndex().getMethodImplementations(
210 m_deobfuscator.getTranslator( TranslationDirection.Deobfuscating ),
211 obfMethodEntry
212 );
213 if( rootNode == null )
214 {
215 return null;
216 }
217 return MethodImplementationsTreeNode.findNode( rootNode, obfMethodEntry );
218 }
219
195 public FieldReferenceTreeNode getFieldReferences( FieldEntry deobfFieldEntry ) 220 public FieldReferenceTreeNode getFieldReferences( FieldEntry deobfFieldEntry )
196 { 221 {
197 FieldEntry obfFieldEntry = m_deobfuscator.obfuscateEntry( deobfFieldEntry ); 222 FieldEntry obfFieldEntry = m_deobfuscator.obfuscateEntry( deobfFieldEntry );