diff options
| author | 2014-07-27 22:33:21 -0400 | |
|---|---|---|
| committer | 2014-07-27 22:33:21 -0400 | |
| commit | d7321b5b0d38c575e54c770f7aa18dacbacab3c8 (patch) | |
| tree | ef4b3e0f83b1fe89125c2674fec023871e70c0d8 /src/cuchaz/enigma/mapping/DeobfuscatedAncestries.java | |
| parent | made gui responsive to caret position and show identifier info (diff) | |
| download | enigma-fork-d7321b5b0d38c575e54c770f7aa18dacbacab3c8.tar.gz enigma-fork-d7321b5b0d38c575e54c770f7aa18dacbacab3c8.tar.xz enigma-fork-d7321b5b0d38c575e54c770f7aa18dacbacab3c8.zip | |
added identifier renaming capability
copied some code over from M3L to handle the heavy bytecode magic.
It's ok... M3L will eventually depend on Enigma.
Completely restructured the mappings though. This way is better. =)
Diffstat (limited to 'src/cuchaz/enigma/mapping/DeobfuscatedAncestries.java')
| -rw-r--r-- | src/cuchaz/enigma/mapping/DeobfuscatedAncestries.java | 57 |
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 | ******************************************************************************/ | ||
| 11 | package cuchaz.enigma.mapping; | ||
| 12 | |||
| 13 | import java.util.Map; | ||
| 14 | |||
| 15 | public 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 | } | ||