From 63172120a39a315e29bc38ea6634741797b3dcab Mon Sep 17 00:00:00 2001 From: jeff Date: Sat, 30 Aug 2014 14:14:54 -0400 Subject: finished class matching for now, need to work on class member matching --- src/cuchaz/enigma/mapping/ClassMapping.java | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/cuchaz/enigma/mapping/ClassMapping.java') diff --git a/src/cuchaz/enigma/mapping/ClassMapping.java b/src/cuchaz/enigma/mapping/ClassMapping.java index 5936512..095cb38 100644 --- a/src/cuchaz/enigma/mapping/ClassMapping.java +++ b/src/cuchaz/enigma/mapping/ClassMapping.java @@ -11,6 +11,7 @@ package cuchaz.enigma.mapping; import java.io.Serializable; +import java.util.ArrayList; import java.util.Map; import com.google.common.collect.Maps; @@ -299,4 +300,32 @@ public class ClassMapping implements Serializable, Comparable { return m_obfName.compareTo( other.m_obfName ); } + + public void renameObfClasses( Map nameMap ) + { + // rename self + { + String newName = nameMap.get( m_obfName ); + if( newName != null ) + { + m_obfName = newName; + } + } + + // rename inner classes + for( ClassMapping classMapping : new ArrayList( m_innerClassesByObf.values() ) ) + { + m_innerClassesByObf.remove( classMapping.getObfName() ); + classMapping.renameObfClasses( nameMap ); + m_innerClassesByObf.put( classMapping.getObfName(), classMapping ); + } + + // rename method signatures + for( MethodMapping methodMapping : new ArrayList( m_methodsByObf.values() ) ) + { + m_methodsByObf.remove( getMethodKey( methodMapping.getObfName(), methodMapping.getObfSignature() ) ); + methodMapping.renameObfClasses( nameMap ); + m_methodsByObf.put( getMethodKey( methodMapping.getObfName(), methodMapping.getObfSignature() ), methodMapping ); + } + } } -- cgit v1.2.3