summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/mapping/DeobfuscatedAncestries.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuchaz/enigma/mapping/DeobfuscatedAncestries.java')
-rw-r--r--src/cuchaz/enigma/mapping/DeobfuscatedAncestries.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/cuchaz/enigma/mapping/DeobfuscatedAncestries.java b/src/cuchaz/enigma/mapping/DeobfuscatedAncestries.java
new file mode 100644
index 0000000..5320f11
--- /dev/null
+++ b/src/cuchaz/enigma/mapping/DeobfuscatedAncestries.java
@@ -0,0 +1,57 @@
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.mapping;
12
13import java.util.Map;
14
15public class DeobfuscatedAncestries extends Ancestries
16{
17 private static final long serialVersionUID = 8316248774892618324L;
18
19 private Ancestries m_ancestries;
20 private Map<String,ClassIndex> m_classesByObf;
21 private Map<String,ClassIndex> m_classesByDeobf;
22
23 protected DeobfuscatedAncestries( Ancestries ancestries, Map<String,ClassIndex> classesByObf, Map<String,ClassIndex> classesByDeobf )
24 {
25 m_ancestries = ancestries;
26 m_classesByObf = classesByObf;
27 m_classesByDeobf = classesByDeobf;
28 }
29
30 @Override
31 public String getSuperclassName( String deobfClassName )
32 {
33 // obfuscate the class name
34 ClassIndex classIndex = m_classesByDeobf.get( deobfClassName );
35 if( classIndex == null )
36 {
37 return null;
38 }
39 String obfClassName = classIndex.getObfName();
40
41 // get the superclass
42 String obfSuperclassName = m_ancestries.getSuperclassName( obfClassName );
43 if( obfSuperclassName == null )
44 {
45 return null;
46 }
47
48 // deobfuscate the superclass name
49 classIndex = m_classesByObf.get( obfSuperclassName );
50 if( classIndex == null )
51 {
52 return null;
53 }
54
55 return classIndex.getDeobfName();
56 }
57}