summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/mapping/Mappings.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuchaz/enigma/mapping/Mappings.java')
-rw-r--r--src/cuchaz/enigma/mapping/Mappings.java28
1 files changed, 9 insertions, 19 deletions
diff --git a/src/cuchaz/enigma/mapping/Mappings.java b/src/cuchaz/enigma/mapping/Mappings.java
index 4b47d16..0b03abb 100644
--- a/src/cuchaz/enigma/mapping/Mappings.java
+++ b/src/cuchaz/enigma/mapping/Mappings.java
@@ -15,6 +15,7 @@ import java.io.InputStream;
15import java.io.ObjectInputStream; 15import java.io.ObjectInputStream;
16import java.io.Serializable; 16import java.io.Serializable;
17import java.util.ArrayList; 17import java.util.ArrayList;
18import java.util.Collection;
18import java.util.Map; 19import java.util.Map;
19import java.util.Set; 20import java.util.Set;
20import java.util.zip.GZIPInputStream; 21import java.util.zip.GZIPInputStream;
@@ -66,7 +67,7 @@ public class Mappings implements Serializable
66 } 67 }
67 } 68 }
68 69
69 public Iterable<ClassMapping> classes( ) 70 public Collection<ClassMapping> classes( )
70 { 71 {
71 assert( m_classesByObf.size() == m_classesByDeobf.size() ); 72 assert( m_classesByObf.size() == m_classesByDeobf.size() );
72 return m_classesByObf.values(); 73 return m_classesByObf.values();
@@ -141,30 +142,19 @@ public class Mappings implements Serializable
141 return buf.toString(); 142 return buf.toString();
142 } 143 }
143 144
144 public void renameObfClasses( Map<String,String> nameMap ) 145 public void renameObfClass( String oldObfName, String newObfName )
145 { 146 {
146 for( ClassMapping classMapping : new ArrayList<ClassMapping>( m_classesByObf.values() ) ) 147 for( ClassMapping classMapping : new ArrayList<ClassMapping>( classes() ) )
147 { 148 {
148 String newName = nameMap.get( classMapping.getObfName() ); 149 if( classMapping.renameObfClass( oldObfName, newObfName ) )
149 if( newName != null )
150 { 150 {
151 m_classesByObf.remove( classMapping.getObfName() ); 151 m_classesByObf.remove( oldObfName );
152 classMapping.renameObfClasses( nameMap ); 152 m_classesByObf.put( newObfName, classMapping );
153 m_classesByObf.put( classMapping.getObfName(), classMapping ); 153 assert( m_classesByObf.size() == m_classesByDeobf.size() );
154 } 154 }
155 } 155 }
156 } 156 }
157 157
158 public void removeClassByObfName( String obfName )
159 {
160 ClassMapping classMapping = m_classesByObf.get( obfName );
161 if( classMapping != null )
162 {
163 m_classesByObf.remove( classMapping.getObfName() );
164 m_classesByDeobf.remove( classMapping.getDeobfName() );
165 }
166 }
167
168 public Set<String> getAllObfClassNames( ) 158 public Set<String> getAllObfClassNames( )
169 { 159 {
170 final Set<String> classNames = Sets.newHashSet(); 160 final Set<String> classNames = Sets.newHashSet();