summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/mapping/ClassMapping.java
diff options
context:
space:
mode:
authorGravatar jeff2014-10-01 00:04:18 -0400
committerGravatar jeff2014-10-01 00:04:18 -0400
commit5eeee98418bb39367258442a82b75a081a6f91e0 (patch)
tree16bd812576caad8a3af7f5616bdcaac7bc30b992 /src/cuchaz/enigma/mapping/ClassMapping.java
parentfixed nasty issue with renaming inner classes, but alas, more bugs remain (diff)
downloadenigma-fork-5eeee98418bb39367258442a82b75a081a6f91e0.tar.gz
enigma-fork-5eeee98418bb39367258442a82b75a081a6f91e0.tar.xz
enigma-fork-5eeee98418bb39367258442a82b75a081a6f91e0.zip
fixed inner class renaming bug
also added smarter sorting to class mappings
Diffstat (limited to 'src/cuchaz/enigma/mapping/ClassMapping.java')
-rw-r--r--src/cuchaz/enigma/mapping/ClassMapping.java28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/cuchaz/enigma/mapping/ClassMapping.java b/src/cuchaz/enigma/mapping/ClassMapping.java
index ee02781..e084d4d 100644
--- a/src/cuchaz/enigma/mapping/ClassMapping.java
+++ b/src/cuchaz/enigma/mapping/ClassMapping.java
@@ -117,6 +117,16 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping>
117 return m_innerClassesByDeobf.get( deobfName ); 117 return m_innerClassesByDeobf.get( deobfName );
118 } 118 }
119 119
120 public ClassMapping getInnerClassByDeobfThenObf( String name )
121 {
122 ClassMapping classMapping = getInnerClassByDeobf( name );
123 if( classMapping == null )
124 {
125 classMapping = getInnerClassByObf( name );
126 }
127 return classMapping;
128 }
129
120 public String getObfInnerClassName( String deobfName ) 130 public String getObfInnerClassName( String deobfName )
121 { 131 {
122 assert( isSimpleClassName( deobfName ) ); 132 assert( isSimpleClassName( deobfName ) );
@@ -392,9 +402,18 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping>
392 buf.append( "\n" ); 402 buf.append( "\n" );
393 } 403 }
394 buf.append( "Methods:\n" ); 404 buf.append( "Methods:\n" );
395 for( MethodMapping methodIndex : m_methodsByObf.values() ) 405 for( MethodMapping methodMapping : m_methodsByObf.values() )
396 { 406 {
397 buf.append( methodIndex.toString() ); 407 buf.append( methodMapping.toString() );
408 buf.append( "\n" );
409 }
410 buf.append( "Inner Classes:\n" );
411 for( ClassMapping classMapping : m_innerClassesByObf.values() )
412 {
413 buf.append( "\t" );
414 buf.append( classMapping.getObfName() );
415 buf.append( " <-> " );
416 buf.append( classMapping.getDeobfName() );
398 buf.append( "\n" ); 417 buf.append( "\n" );
399 } 418 }
400 return buf.toString(); 419 return buf.toString();
@@ -403,6 +422,11 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping>
403 @Override 422 @Override
404 public int compareTo( ClassMapping other ) 423 public int compareTo( ClassMapping other )
405 { 424 {
425 // sort by a, b, c, ... aa, ab, etc
426 if( m_obfName.length() != other.m_obfName.length() )
427 {
428 return m_obfName.length() - other.m_obfName.length();
429 }
406 return m_obfName.compareTo( other.m_obfName ); 430 return m_obfName.compareTo( other.m_obfName );
407 } 431 }
408 432