From 63172120a39a315e29bc38ea6634741797b3dcab Mon Sep 17 00:00:00 2001 From: jeff Date: Sat, 30 Aug 2014 14:14:54 -0400 Subject: finished class matching for now, need to work on class member matching --- src/cuchaz/enigma/convert/ClassMatching.java | 33 ++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/cuchaz/enigma/convert/ClassMatching.java') 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 @@ ******************************************************************************/ package cuchaz.enigma.convert; +import java.util.AbstractMap; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Map; import com.beust.jcommander.internal.Lists; +import com.beust.jcommander.internal.Maps; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; @@ -156,6 +159,36 @@ public class ClassMatching return new ArrayList( m_unmatchedDestClasses ); } + public Map>> getConversionMap( ) + { + Map>> conversion = Maps.newHashMap(); + for( Map.Entry entry : getUniqueMatches().entrySet() ) + { + conversion.put( + entry.getKey().getClassEntry().getName(), + new AbstractMap.SimpleEntry>( entry.getKey(), Arrays.asList( entry.getValue() ) ) + ); + } + for( Map.Entry,List> entry : getAmbiguousMatches().entrySet() ) + { + for( ClassIdentity sourceClass : entry.getKey() ) + { + conversion.put( + sourceClass.getClassEntry().getName(), + new AbstractMap.SimpleEntry>( sourceClass, entry.getValue() ) + ); + } + } + for( ClassIdentity sourceClass : getUnmatchedSourceClasses() ) + { + conversion.put( + sourceClass.getClassEntry().getName(), + new AbstractMap.SimpleEntry>( sourceClass, new ArrayList() ) + ); + } + return conversion; + } + @Override public String toString( ) { -- cgit v1.2.3