summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/analysis/DeobfuscatedAncestries.java
diff options
context:
space:
mode:
authorGravatar jeff2014-08-11 00:02:00 -0400
committerGravatar jeff2014-08-11 00:02:00 -0400
commitbba7c6a19c15bc82946176c79a4eba3612b25f17 (patch)
treef0b55befaa6e7e532e9728dfa6b1c9cb36660594 /src/cuchaz/enigma/analysis/DeobfuscatedAncestries.java
parentadded backwards navigation (diff)
downloadenigma-fork-bba7c6a19c15bc82946176c79a4eba3612b25f17.tar.gz
enigma-fork-bba7c6a19c15bc82946176c79a4eba3612b25f17.tar.xz
enigma-fork-bba7c6a19c15bc82946176c79a4eba3612b25f17.zip
added method inheritance browsing
also finally fixed method renamer to rename all method implementations in the inheritance hierarchy.
Diffstat (limited to 'src/cuchaz/enigma/analysis/DeobfuscatedAncestries.java')
-rw-r--r--src/cuchaz/enigma/analysis/DeobfuscatedAncestries.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/cuchaz/enigma/analysis/DeobfuscatedAncestries.java b/src/cuchaz/enigma/analysis/DeobfuscatedAncestries.java
new file mode 100644
index 0000000..b14eca7
--- /dev/null
+++ b/src/cuchaz/enigma/analysis/DeobfuscatedAncestries.java
@@ -0,0 +1,59 @@
1/*******************************************************************************
2 * Copyright (c) 2014 Jeff Martin.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the GNU Public License v3.0
5 * which accompanies this distribution, and is available at
6 * http://www.gnu.org/licenses/gpl.html
7 *
8 * Contributors:
9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/
11package cuchaz.enigma.analysis;
12
13import java.util.Map;
14
15import cuchaz.enigma.mapping.ClassMapping;
16
17public class DeobfuscatedAncestries extends Ancestries
18{
19 private static final long serialVersionUID = 8316248774892618324L;
20
21 private Ancestries m_ancestries;
22 private Map<String,ClassMapping> m_classesByObf;
23 private Map<String,ClassMapping> m_classesByDeobf;
24
25 public DeobfuscatedAncestries( Ancestries ancestries, Map<String,ClassMapping> classesByObf, Map<String,ClassMapping> classesByDeobf )
26 {
27 m_ancestries = ancestries;
28 m_classesByObf = classesByObf;
29 m_classesByDeobf = classesByDeobf;
30 }
31
32 @Override
33 public String getSuperclassName( String deobfClassName )
34 {
35 // obfuscate the class name
36 ClassMapping classIndex = m_classesByDeobf.get( deobfClassName );
37 if( classIndex == null )
38 {
39 return null;
40 }
41 String obfClassName = classIndex.getObfName();
42
43 // get the superclass
44 String obfSuperclassName = m_ancestries.getSuperclassName( obfClassName );
45 if( obfSuperclassName == null )
46 {
47 return null;
48 }
49
50 // deobfuscate the superclass name
51 classIndex = m_classesByObf.get( obfSuperclassName );
52 if( classIndex == null )
53 {
54 return null;
55 }
56
57 return classIndex.getDeobfName();
58 }
59}