summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/mapping/Translator.java
diff options
context:
space:
mode:
authorGravatar jeff2014-09-01 22:52:07 -0400
committerGravatar jeff2014-09-01 22:52:07 -0400
commit360bbd1c2fca8cbd575907b7d930a8072fccb0c2 (patch)
tree93d0f3c4a0901411427df580c5ddb75cf27440f1 /src/cuchaz/enigma/mapping/Translator.java
parentadded copyright notice (diff)
downloadenigma-fork-360bbd1c2fca8cbd575907b7d930a8072fccb0c2.tar.gz
enigma-fork-360bbd1c2fca8cbd575907b7d930a8072fccb0c2.tar.xz
enigma-fork-360bbd1c2fca8cbd575907b7d930a8072fccb0c2.zip
refactored jar,translation index. fixed bug with field renaming when fields are shadowed by subclasses
Diffstat (limited to 'src/cuchaz/enigma/mapping/Translator.java')
-rw-r--r--src/cuchaz/enigma/mapping/Translator.java21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/cuchaz/enigma/mapping/Translator.java b/src/cuchaz/enigma/mapping/Translator.java
index 23bf095..f5aafdd 100644
--- a/src/cuchaz/enigma/mapping/Translator.java
+++ b/src/cuchaz/enigma/mapping/Translator.java
@@ -16,27 +16,27 @@ import java.util.Map;
16 16
17import com.beust.jcommander.internal.Maps; 17import com.beust.jcommander.internal.Maps;
18 18
19import cuchaz.enigma.analysis.Ancestries; 19import cuchaz.enigma.analysis.TranslationIndex;
20import cuchaz.enigma.mapping.SignatureUpdater.ClassNameUpdater; 20import cuchaz.enigma.mapping.SignatureUpdater.ClassNameUpdater;
21 21
22public class Translator 22public class Translator
23{ 23{
24 private TranslationDirection m_direction; 24 private TranslationDirection m_direction;
25 public Map<String,ClassMapping> m_classes; 25 private Map<String,ClassMapping> m_classes;
26 private Ancestries m_ancestries; 26 private TranslationIndex m_index;
27 27
28 public Translator( ) 28 public Translator( )
29 { 29 {
30 m_direction = null; 30 m_direction = null;
31 m_classes = Maps.newHashMap(); 31 m_classes = Maps.newHashMap();
32 m_ancestries = new Ancestries(); 32 m_index = new TranslationIndex();
33 } 33 }
34 34
35 protected Translator( TranslationDirection direction, Map<String,ClassMapping> classes, Ancestries ancestries ) 35 public Translator( TranslationDirection direction, Map<String,ClassMapping> classes, TranslationIndex index )
36 { 36 {
37 m_direction = direction; 37 m_direction = direction;
38 m_classes = classes; 38 m_classes = classes;
39 m_ancestries = ancestries; 39 m_index = index;
40 } 40 }
41 41
42 @SuppressWarnings( "unchecked" ) 42 @SuppressWarnings( "unchecked" )
@@ -145,6 +145,13 @@ public class Translator
145 return translatedName; 145 return translatedName;
146 } 146 }
147 } 147 }
148
149 // is the field implemented in this class?
150 if( m_index.containsField( className, in.getName() ) )
151 {
152 // stop traversing the superclass chain
153 break;
154 }
148 } 155 }
149 return null; 156 return null;
150 } 157 }
@@ -291,7 +298,7 @@ public class Translator
291 { 298 {
292 List<String> ancestry = new ArrayList<String>(); 299 List<String> ancestry = new ArrayList<String>();
293 ancestry.add( className ); 300 ancestry.add( className );
294 ancestry.addAll( m_ancestries.getAncestry( className ) ); 301 ancestry.addAll( m_index.getAncestry( className ) );
295 return ancestry; 302 return ancestry;
296 } 303 }
297 304