diff options
Diffstat (limited to 'src/cuchaz/enigma/mapping/ClassMapping.java')
| -rw-r--r-- | src/cuchaz/enigma/mapping/ClassMapping.java | 29 |
1 files changed, 29 insertions, 0 deletions
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 @@ | |||
| 11 | package cuchaz.enigma.mapping; | 11 | package cuchaz.enigma.mapping; |
| 12 | 12 | ||
| 13 | import java.io.Serializable; | 13 | import java.io.Serializable; |
| 14 | import java.util.ArrayList; | ||
| 14 | import java.util.Map; | 15 | import java.util.Map; |
| 15 | 16 | ||
| 16 | import com.google.common.collect.Maps; | 17 | import com.google.common.collect.Maps; |
| @@ -299,4 +300,32 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping> | |||
| 299 | { | 300 | { |
| 300 | return m_obfName.compareTo( other.m_obfName ); | 301 | return m_obfName.compareTo( other.m_obfName ); |
| 301 | } | 302 | } |
| 303 | |||
| 304 | public void renameObfClasses( Map<String,String> nameMap ) | ||
| 305 | { | ||
| 306 | // rename self | ||
| 307 | { | ||
| 308 | String newName = nameMap.get( m_obfName ); | ||
| 309 | if( newName != null ) | ||
| 310 | { | ||
| 311 | m_obfName = newName; | ||
| 312 | } | ||
| 313 | } | ||
| 314 | |||
| 315 | // rename inner classes | ||
| 316 | for( ClassMapping classMapping : new ArrayList<ClassMapping>( m_innerClassesByObf.values() ) ) | ||
| 317 | { | ||
| 318 | m_innerClassesByObf.remove( classMapping.getObfName() ); | ||
| 319 | classMapping.renameObfClasses( nameMap ); | ||
| 320 | m_innerClassesByObf.put( classMapping.getObfName(), classMapping ); | ||
| 321 | } | ||
| 322 | |||
| 323 | // rename method signatures | ||
| 324 | for( MethodMapping methodMapping : new ArrayList<MethodMapping>( m_methodsByObf.values() ) ) | ||
| 325 | { | ||
| 326 | m_methodsByObf.remove( getMethodKey( methodMapping.getObfName(), methodMapping.getObfSignature() ) ); | ||
| 327 | methodMapping.renameObfClasses( nameMap ); | ||
| 328 | m_methodsByObf.put( getMethodKey( methodMapping.getObfName(), methodMapping.getObfSignature() ), methodMapping ); | ||
| 329 | } | ||
| 330 | } | ||
| 302 | } | 331 | } |