summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/analysis
diff options
context:
space:
mode:
authorGravatar jeff2015-03-09 20:08:15 -0400
committerGravatar jeff2015-03-09 20:08:15 -0400
commit1ad33bfe0a96b1b4a1f3c02cf2c054e8a101dfd8 (patch)
tree86ce734a5bb32a7b205c096118faf41996521a43 /src/cuchaz/enigma/analysis
parentstarting on field matching gui (diff)
downloadenigma-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.java28
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 }