summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/convert/ClassMatching.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuchaz/enigma/convert/ClassMatching.java')
-rw-r--r--src/cuchaz/enigma/convert/ClassMatching.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/cuchaz/enigma/convert/ClassMatching.java b/src/cuchaz/enigma/convert/ClassMatching.java
index fea8438..4e9fe39 100644
--- a/src/cuchaz/enigma/convert/ClassMatching.java
+++ b/src/cuchaz/enigma/convert/ClassMatching.java
@@ -10,12 +10,15 @@
10 ******************************************************************************/ 10 ******************************************************************************/
11package cuchaz.enigma.convert; 11package cuchaz.enigma.convert;
12 12
13import java.util.AbstractMap;
13import java.util.ArrayList; 14import java.util.ArrayList;
15import java.util.Arrays;
14import java.util.Collection; 16import java.util.Collection;
15import java.util.List; 17import java.util.List;
16import java.util.Map; 18import java.util.Map;
17 19
18import com.beust.jcommander.internal.Lists; 20import com.beust.jcommander.internal.Lists;
21import com.beust.jcommander.internal.Maps;
19import com.google.common.collect.ArrayListMultimap; 22import com.google.common.collect.ArrayListMultimap;
20import com.google.common.collect.BiMap; 23import com.google.common.collect.BiMap;
21import com.google.common.collect.HashBiMap; 24import com.google.common.collect.HashBiMap;
@@ -156,6 +159,36 @@ public class ClassMatching
156 return new ArrayList<ClassIdentity>( m_unmatchedDestClasses ); 159 return new ArrayList<ClassIdentity>( m_unmatchedDestClasses );
157 } 160 }
158 161
162 public Map<String,Map.Entry<ClassIdentity,List<ClassIdentity>>> getConversionMap( )
163 {
164 Map<String,Map.Entry<ClassIdentity,List<ClassIdentity>>> conversion = Maps.newHashMap();
165 for( Map.Entry<ClassIdentity,ClassIdentity> entry : getUniqueMatches().entrySet() )
166 {
167 conversion.put(
168 entry.getKey().getClassEntry().getName(),
169 new AbstractMap.SimpleEntry<ClassIdentity,List<ClassIdentity>>( entry.getKey(), Arrays.asList( entry.getValue() ) )
170 );
171 }
172 for( Map.Entry<List<ClassIdentity>,List<ClassIdentity>> entry : getAmbiguousMatches().entrySet() )
173 {
174 for( ClassIdentity sourceClass : entry.getKey() )
175 {
176 conversion.put(
177 sourceClass.getClassEntry().getName(),
178 new AbstractMap.SimpleEntry<ClassIdentity,List<ClassIdentity>>( sourceClass, entry.getValue() )
179 );
180 }
181 }
182 for( ClassIdentity sourceClass : getUnmatchedSourceClasses() )
183 {
184 conversion.put(
185 sourceClass.getClassEntry().getName(),
186 new AbstractMap.SimpleEntry<ClassIdentity,List<ClassIdentity>>( sourceClass, new ArrayList<ClassIdentity>() )
187 );
188 }
189 return conversion;
190 }
191
159 @Override 192 @Override
160 public String toString( ) 193 public String toString( )
161 { 194 {