summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/mapping/ClassMapping.java
diff options
context:
space:
mode:
authorGravatar jeff2014-09-30 00:25:36 -0400
committerGravatar jeff2014-09-30 00:25:36 -0400
commita83bbfd5c510367a194073b1db132022cacf65ed (patch)
treeabfd7520b79ef1e64b7430bd81e75a30353b7f14 /src/cuchaz/enigma/mapping/ClassMapping.java
parentfixed recognition of static initializer tokens (diff)
downloadenigma-fork-a83bbfd5c510367a194073b1db132022cacf65ed.tar.gz
enigma-fork-a83bbfd5c510367a194073b1db132022cacf65ed.tar.xz
enigma-fork-a83bbfd5c510367a194073b1db132022cacf65ed.zip
fixed nasty issue with renaming inner classes, but alas, more bugs remain
Diffstat (limited to '')
-rw-r--r--src/cuchaz/enigma/mapping/ClassMapping.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/cuchaz/enigma/mapping/ClassMapping.java b/src/cuchaz/enigma/mapping/ClassMapping.java
index 88106df..ee02781 100644
--- a/src/cuchaz/enigma/mapping/ClassMapping.java
+++ b/src/cuchaz/enigma/mapping/ClassMapping.java
@@ -37,7 +37,7 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping>
37 public ClassMapping( String obfName, String deobfName ) 37 public ClassMapping( String obfName, String deobfName )
38 { 38 {
39 m_obfName = obfName; 39 m_obfName = obfName;
40 m_deobfName = NameValidator.validateClassName( deobfName ); 40 m_deobfName = NameValidator.validateClassName( deobfName, false );
41 m_innerClassesByObf = Maps.newHashMap(); 41 m_innerClassesByObf = Maps.newHashMap();
42 m_innerClassesByDeobf = Maps.newHashMap(); 42 m_innerClassesByDeobf = Maps.newHashMap();
43 m_fieldsByObf = Maps.newHashMap(); 43 m_fieldsByObf = Maps.newHashMap();
@@ -57,7 +57,7 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping>
57 } 57 }
58 public void setDeobfName( String val ) 58 public void setDeobfName( String val )
59 { 59 {
60 m_deobfName = NameValidator.validateClassName( val ); 60 m_deobfName = NameValidator.validateClassName( val, false );
61 } 61 }
62 62
63 //// INNER CLASSES //////// 63 //// INNER CLASSES ////////
@@ -70,10 +70,12 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping>
70 70
71 public void addInnerClassMapping( ClassMapping classMapping ) 71 public void addInnerClassMapping( ClassMapping classMapping )
72 { 72 {
73 assert( isSimpleClassName( classMapping.getObfName() ) );
73 boolean obfWasAdded = m_innerClassesByObf.put( classMapping.getObfName(), classMapping ) == null; 74 boolean obfWasAdded = m_innerClassesByObf.put( classMapping.getObfName(), classMapping ) == null;
74 assert( obfWasAdded ); 75 assert( obfWasAdded );
75 if( classMapping.getDeobfName() != null ) 76 if( classMapping.getDeobfName() != null )
76 { 77 {
78 assert( isSimpleClassName( classMapping.getDeobfName() ) );
77 boolean deobfWasAdded = m_innerClassesByDeobf.put( classMapping.getDeobfName(), classMapping ) == null; 79 boolean deobfWasAdded = m_innerClassesByDeobf.put( classMapping.getDeobfName(), classMapping ) == null;
78 assert( deobfWasAdded ); 80 assert( deobfWasAdded );
79 } 81 }
@@ -92,6 +94,7 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping>
92 94
93 public ClassMapping getOrCreateInnerClass( String obfName ) 95 public ClassMapping getOrCreateInnerClass( String obfName )
94 { 96 {
97 assert( isSimpleClassName( obfName ) );
95 ClassMapping classMapping = m_innerClassesByObf.get( obfName ); 98 ClassMapping classMapping = m_innerClassesByObf.get( obfName );
96 if( classMapping == null ) 99 if( classMapping == null )
97 { 100 {
@@ -104,16 +107,19 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping>
104 107
105 public ClassMapping getInnerClassByObf( String obfName ) 108 public ClassMapping getInnerClassByObf( String obfName )
106 { 109 {
110 assert( isSimpleClassName( obfName ) );
107 return m_innerClassesByObf.get( obfName ); 111 return m_innerClassesByObf.get( obfName );
108 } 112 }
109 113
110 public ClassMapping getInnerClassByDeobf( String deobfName ) 114 public ClassMapping getInnerClassByDeobf( String deobfName )
111 { 115 {
116 assert( isSimpleClassName( deobfName ) );
112 return m_innerClassesByDeobf.get( deobfName ); 117 return m_innerClassesByDeobf.get( deobfName );
113 } 118 }
114 119
115 public String getObfInnerClassName( String deobfName ) 120 public String getObfInnerClassName( String deobfName )
116 { 121 {
122 assert( isSimpleClassName( deobfName ) );
117 ClassMapping classMapping = m_innerClassesByDeobf.get( deobfName ); 123 ClassMapping classMapping = m_innerClassesByDeobf.get( deobfName );
118 if( classMapping != null ) 124 if( classMapping != null )
119 { 125 {
@@ -124,6 +130,7 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping>
124 130
125 public String getDeobfInnerClassName( String obfName ) 131 public String getDeobfInnerClassName( String obfName )
126 { 132 {
133 assert( isSimpleClassName( obfName ) );
127 ClassMapping classMapping = m_innerClassesByObf.get( obfName ); 134 ClassMapping classMapping = m_innerClassesByObf.get( obfName );
128 if( classMapping != null ) 135 if( classMapping != null )
129 { 136 {
@@ -134,6 +141,7 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping>
134 141
135 public void setInnerClassName( String obfName, String deobfName ) 142 public void setInnerClassName( String obfName, String deobfName )
136 { 143 {
144 assert( isSimpleClassName( obfName ) );
137 ClassMapping classMapping = getOrCreateInnerClass( obfName ); 145 ClassMapping classMapping = getOrCreateInnerClass( obfName );
138 if( classMapping.getDeobfName() != null ) 146 if( classMapping.getDeobfName() != null )
139 { 147 {
@@ -143,6 +151,7 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping>
143 classMapping.setDeobfName( deobfName ); 151 classMapping.setDeobfName( deobfName );
144 if( deobfName != null ) 152 if( deobfName != null )
145 { 153 {
154 assert( isSimpleClassName( deobfName ) );
146 boolean wasAdded = m_innerClassesByDeobf.put( deobfName, classMapping ) == null; 155 boolean wasAdded = m_innerClassesByDeobf.put( deobfName, classMapping ) == null;
147 assert( wasAdded ); 156 assert( wasAdded );
148 } 157 }
@@ -442,4 +451,9 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping>
442 } 451 }
443 return false; 452 return false;
444 } 453 }
454
455 public static boolean isSimpleClassName( String name )
456 {
457 return name.indexOf( '/' ) < 0 && name.indexOf( '$' ) < 0;
458 }
445} 459}