diff options
| author | 2015-03-09 20:08:15 -0400 | |
|---|---|---|
| committer | 2015-03-09 20:08:15 -0400 | |
| commit | 1ad33bfe0a96b1b4a1f3c02cf2c054e8a101dfd8 (patch) | |
| tree | 86ce734a5bb32a7b205c096118faf41996521a43 /src/cuchaz/enigma/analysis | |
| parent | starting on field matching gui (diff) | |
| download | enigma-fork-1ad33bfe0a96b1b4a1f3c02cf2c054e8a101dfd8.tar.gz enigma-fork-1ad33bfe0a96b1b4a1f3c02cf2c054e8a101dfd8.tar.xz enigma-fork-1ad33bfe0a96b1b4a1f3c02cf2c054e8a101dfd8.zip | |
field matcher is starting to be useful
Diffstat (limited to 'src/cuchaz/enigma/analysis')
| -rw-r--r-- | src/cuchaz/enigma/analysis/JarIndex.java | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/cuchaz/enigma/analysis/JarIndex.java b/src/cuchaz/enigma/analysis/JarIndex.java index e0a8bf5..7ebbd97 100644 --- a/src/cuchaz/enigma/analysis/JarIndex.java +++ b/src/cuchaz/enigma/analysis/JarIndex.java | |||
| @@ -60,6 +60,8 @@ public class JarIndex { | |||
| 60 | private TranslationIndex m_translationIndex; | 60 | private TranslationIndex m_translationIndex; |
| 61 | private Multimap<String,String> m_interfaces; | 61 | private Multimap<String,String> m_interfaces; |
| 62 | private Map<Entry,Access> m_access; | 62 | private Map<Entry,Access> m_access; |
| 63 | private Multimap<ClassEntry,FieldEntry> m_fields; | ||
| 64 | private Multimap<ClassEntry,BehaviorEntry> m_behaviors; | ||
| 63 | private Multimap<String,MethodEntry> m_methodImplementations; | 65 | private Multimap<String,MethodEntry> m_methodImplementations; |
| 64 | private Multimap<BehaviorEntry,EntryReference<BehaviorEntry,BehaviorEntry>> m_behaviorReferences; | 66 | private Multimap<BehaviorEntry,EntryReference<BehaviorEntry,BehaviorEntry>> m_behaviorReferences; |
| 65 | private Multimap<FieldEntry,EntryReference<FieldEntry,BehaviorEntry>> m_fieldReferences; | 67 | private Multimap<FieldEntry,EntryReference<FieldEntry,BehaviorEntry>> m_fieldReferences; |
| @@ -73,6 +75,8 @@ public class JarIndex { | |||
| 73 | m_translationIndex = new TranslationIndex(); | 75 | m_translationIndex = new TranslationIndex(); |
| 74 | m_interfaces = HashMultimap.create(); | 76 | m_interfaces = HashMultimap.create(); |
| 75 | m_access = Maps.newHashMap(); | 77 | m_access = Maps.newHashMap(); |
| 78 | m_fields = HashMultimap.create(); | ||
| 79 | m_behaviors = HashMultimap.create(); | ||
| 76 | m_methodImplementations = HashMultimap.create(); | 80 | m_methodImplementations = HashMultimap.create(); |
| 77 | m_behaviorReferences = HashMultimap.create(); | 81 | m_behaviorReferences = HashMultimap.create(); |
| 78 | m_fieldReferences = HashMultimap.create(); | 82 | m_fieldReferences = HashMultimap.create(); |
| @@ -97,10 +101,14 @@ public class JarIndex { | |||
| 97 | for (CtClass c : JarClassIterator.classes(jar)) { | 101 | for (CtClass c : JarClassIterator.classes(jar)) { |
| 98 | ClassRenamer.moveAllClassesOutOfDefaultPackage(c, Constants.NonePackage); | 102 | ClassRenamer.moveAllClassesOutOfDefaultPackage(c, Constants.NonePackage); |
| 99 | for (CtField field : c.getDeclaredFields()) { | 103 | for (CtField field : c.getDeclaredFields()) { |
| 100 | m_access.put(EntryFactory.getFieldEntry(field), Access.get(field)); | 104 | FieldEntry fieldEntry = EntryFactory.getFieldEntry(field); |
| 105 | m_access.put(fieldEntry, Access.get(field)); | ||
| 106 | m_fields.put(fieldEntry.getClassEntry(), fieldEntry); | ||
| 101 | } | 107 | } |
| 102 | for (CtBehavior behavior : c.getDeclaredBehaviors()) { | 108 | for (CtBehavior behavior : c.getDeclaredBehaviors()) { |
| 103 | m_access.put(EntryFactory.getBehaviorEntry(behavior), Access.get(behavior)); | 109 | BehaviorEntry behaviorEntry = EntryFactory.getBehaviorEntry(behavior); |
| 110 | m_access.put(behaviorEntry, Access.get(behavior)); | ||
| 111 | m_behaviors.put(behaviorEntry.getClassEntry(), behaviorEntry); | ||
| 104 | } | 112 | } |
| 105 | } | 113 | } |
| 106 | 114 | ||
| @@ -520,6 +528,22 @@ public class JarIndex { | |||
| 520 | return m_obfClassEntries; | 528 | return m_obfClassEntries; |
| 521 | } | 529 | } |
| 522 | 530 | ||
| 531 | public Collection<FieldEntry> getObfFieldEntries() { | ||
| 532 | return m_fields.values(); | ||
| 533 | } | ||
| 534 | |||
| 535 | public Collection<FieldEntry> getObfFieldEntries(ClassEntry classEntry) { | ||
| 536 | return m_fields.get(classEntry); | ||
| 537 | } | ||
| 538 | |||
| 539 | public Collection<BehaviorEntry> getObfBehaviorEntries() { | ||
| 540 | return m_behaviors.values(); | ||
| 541 | } | ||
| 542 | |||
| 543 | public Collection<BehaviorEntry> getObfBehaviorEntries(ClassEntry classEntry) { | ||
| 544 | return m_behaviors.get(classEntry); | ||
| 545 | } | ||
| 546 | |||
| 523 | public TranslationIndex getTranslationIndex() { | 547 | public TranslationIndex getTranslationIndex() { |
| 524 | return m_translationIndex; | 548 | return m_translationIndex; |
| 525 | } | 549 | } |