From 00fcd0550fcdda621c2e4662f6ddd55ce673b931 Mon Sep 17 00:00:00 2001 From: Gegy Date: Thu, 24 Jan 2019 14:48:32 +0200 Subject: [WIP] Mapping rework (#91) * Move packages * Mapping & entry refactor: first pass * Fix deobf -> obf tree remapping * Resolve various issues * Give all entries the potential for parents and treat inner classes as children * Deobf UI tree elements * Tests pass * Sort mapping output * Fix delta tracking * Index separation and first pass for #97 * Keep track of remapped jar index * Fix child entries not being remapped * Drop non-root entries * Track dropped mappings * Fix enigma mapping ordering * EntryTreeNode interface * Small tweaks * Naive full index remap on rename * Entries can resolve to more than one root entry * Support alternative resolution strategies * Bridge method resolution * Tests pass * Fix mappings being used where there are none * Fix methods with different descriptors being considered unique. closes #89 --- .../enigma/analysis/ClassInheritanceTreeNode.java | 32 ++++++++-------------- 1 file changed, 12 insertions(+), 20 deletions(-) (limited to 'src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java') diff --git a/src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java b/src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java index b8ee17d..7904c5f 100644 --- a/src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java +++ b/src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java @@ -12,25 +12,25 @@ package cuchaz.enigma.analysis; import com.google.common.collect.Lists; -import cuchaz.enigma.mapping.entry.ClassEntry; -import cuchaz.enigma.mapping.Translator; +import cuchaz.enigma.analysis.index.InheritanceIndex; +import cuchaz.enigma.translation.Translator; +import cuchaz.enigma.translation.representation.entry.ClassEntry; import javax.swing.tree.DefaultMutableTreeNode; import java.util.List; public class ClassInheritanceTreeNode extends DefaultMutableTreeNode { - - private final Translator deobfuscatingTranslator; + private final Translator translator; private final ClassEntry obfClassEntry; - public ClassInheritanceTreeNode(Translator deobfuscatingTranslator, String obfClassName) { - this.deobfuscatingTranslator = deobfuscatingTranslator; + public ClassInheritanceTreeNode(Translator translator, String obfClassName) { + this.translator = translator; this.obfClassEntry = new ClassEntry(obfClassName); } public static ClassInheritanceTreeNode findNode(ClassInheritanceTreeNode node, ClassEntry entry) { // is this the node? - if (node.getObfClassName().equals(entry.getName())) { + if (node.getObfClassName().equals(entry.getFullName())) { return node; } @@ -45,27 +45,19 @@ public class ClassInheritanceTreeNode extends DefaultMutableTreeNode { } public String getObfClassName() { - return this.obfClassEntry.getClassName(); - } - - public String getDeobfClassName() { - return this.deobfuscatingTranslator.getTranslatedClass(this.obfClassEntry).getClassName(); + return this.obfClassEntry.getFullName(); } @Override public String toString() { - String deobfClassName = getDeobfClassName(); - if (deobfClassName != null) { - return deobfClassName; - } - return this.obfClassEntry.getName(); + return translator.translate(obfClassEntry).getFullName(); } - public void load(TranslationIndex ancestries, boolean recurse) { + public void load(InheritanceIndex ancestries, boolean recurse) { // get all the child nodes List nodes = Lists.newArrayList(); - for (ClassEntry subclassEntry : ancestries.getSubclass(this.obfClassEntry)) { - nodes.add(new ClassInheritanceTreeNode(this.deobfuscatingTranslator, subclassEntry.getName())); + for (ClassEntry inheritor : ancestries.getChildren(this.obfClassEntry)) { + nodes.add(new ClassInheritanceTreeNode(translator, inheritor.getFullName())); } // add them to this node -- cgit v1.2.3