From b4aaff683d78ab92b83f3a7257c33b8e27d1affa Mon Sep 17 00:00:00 2001 From: Thog Date: Tue, 7 Mar 2017 21:24:39 +0100 Subject: Drop unix case style and implement hashCode when equals is overrided Also update Guava to version 21 --- src/main/java/cuchaz/enigma/analysis/Access.java | 15 ++-- .../enigma/analysis/BehaviorReferenceTreeNode.java | 93 ++++++++++++---------- .../java/cuchaz/enigma/analysis/BridgeMarker.java | 6 +- src/main/java/cuchaz/enigma/analysis/JarIndex.java | 2 - .../analysis/SourceIndexBehaviorVisitor.java | 1 - src/main/java/cuchaz/enigma/analysis/Token.java | 6 ++ .../cuchaz/enigma/analysis/TreeDumpVisitor.java | 13 ++- 7 files changed, 74 insertions(+), 62 deletions(-) (limited to 'src/main/java/cuchaz/enigma/analysis') diff --git a/src/main/java/cuchaz/enigma/analysis/Access.java b/src/main/java/cuchaz/enigma/analysis/Access.java index b8aafaa..b8a7b2c 100644 --- a/src/main/java/cuchaz/enigma/analysis/Access.java +++ b/src/main/java/cuchaz/enigma/analysis/Access.java @@ -17,10 +17,7 @@ import javassist.CtField; public enum Access { - Public, - Protected, - Package, - Private; + PUBLIC, PROTECTED, PACKAGE, PRIVATE; public static Access get(CtBehavior behavior) { return get(behavior.getModifiers()); @@ -36,15 +33,15 @@ public enum Access { boolean isPrivate = Modifier.isPrivate(modifiers); if (isPublic && !isProtected && !isPrivate) { - return Public; + return PUBLIC; } else if (!isPublic && isProtected && !isPrivate) { - return Protected; + return PROTECTED; } else if (!isPublic && !isProtected && isPrivate) { - return Private; + return PRIVATE; } else if (!isPublic && !isProtected && !isPrivate) { - return Package; + return PACKAGE; } // assume public by default - return Public; + return PUBLIC; } } diff --git a/src/main/java/cuchaz/enigma/analysis/BehaviorReferenceTreeNode.java b/src/main/java/cuchaz/enigma/analysis/BehaviorReferenceTreeNode.java index 98aa12e..52d5b31 100644 --- a/src/main/java/cuchaz/enigma/analysis/BehaviorReferenceTreeNode.java +++ b/src/main/java/cuchaz/enigma/analysis/BehaviorReferenceTreeNode.java @@ -11,75 +11,88 @@ package cuchaz.enigma.analysis; import com.google.common.collect.Sets; - -import java.util.Set; - -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.TreeNode; - import cuchaz.enigma.mapping.BehaviorEntry; import cuchaz.enigma.mapping.Entry; import cuchaz.enigma.mapping.Translator; -public class BehaviorReferenceTreeNode extends DefaultMutableTreeNode implements ReferenceTreeNode { +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.TreeNode; +import java.util.Set; + +public class BehaviorReferenceTreeNode extends DefaultMutableTreeNode + implements ReferenceTreeNode +{ - private Translator m_deobfuscatingTranslator; - private BehaviorEntry m_entry; - private EntryReference m_reference; - private Access m_access; + private Translator deobfuscatingTranslator; + private BehaviorEntry entry; + private EntryReference reference; + private Access access; - public BehaviorReferenceTreeNode(Translator deobfuscatingTranslator, BehaviorEntry entry) { - this.m_deobfuscatingTranslator = deobfuscatingTranslator; - this.m_entry = entry; - this.m_reference = null; + public BehaviorReferenceTreeNode(Translator deobfuscatingTranslator, BehaviorEntry entry) + { + this.deobfuscatingTranslator = deobfuscatingTranslator; + this.entry = entry; + this.reference = null; } - public BehaviorReferenceTreeNode(Translator deobfuscatingTranslator, EntryReference reference, Access access) { - this.m_deobfuscatingTranslator = deobfuscatingTranslator; - this.m_entry = reference.entry; - this.m_reference = reference; - this.m_access = access; + public BehaviorReferenceTreeNode(Translator deobfuscatingTranslator, + EntryReference reference, Access access) + { + this.deobfuscatingTranslator = deobfuscatingTranslator; + this.entry = reference.entry; + this.reference = reference; + this.access = access; } - @Override - public BehaviorEntry getEntry() { - return this.m_entry; + @Override public BehaviorEntry getEntry() + { + return this.entry; } - @Override - public EntryReference getReference() { - return this.m_reference; + @Override public EntryReference getReference() + { + return this.reference; } - @Override - public String toString() { - if (this.m_reference != null) { - return String.format("%s (%s)", this.m_deobfuscatingTranslator.translateEntry(this.m_reference.context), this.m_access); + @Override public String toString() + { + if (this.reference != null) + { + return String.format("%s (%s)", this.deobfuscatingTranslator.translateEntry(this.reference.context), + this.access); } - return this.m_deobfuscatingTranslator.translateEntry(this.m_entry).toString(); + return this.deobfuscatingTranslator.translateEntry(this.entry).toString(); } - public void load(JarIndex index, boolean recurse) { + public void load(JarIndex index, boolean recurse) + { // get all the child nodes - for (EntryReference reference : index.getBehaviorReferences(this.m_entry)) { - add(new BehaviorReferenceTreeNode(this.m_deobfuscatingTranslator, reference, index.getAccess(this.m_entry))); + for (EntryReference reference : index.getBehaviorReferences(this.entry)) + { + add(new BehaviorReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccess(this.entry))); } - if (recurse && this.children != null) { - for (Object child : this.children) { - if (child instanceof BehaviorReferenceTreeNode) { + if (recurse && this.children != null) + { + for (Object child : this.children) + { + if (child instanceof BehaviorReferenceTreeNode) + { BehaviorReferenceTreeNode node = (BehaviorReferenceTreeNode) child; // don't recurse into ancestor Set ancestors = Sets.newHashSet(); TreeNode n = node; - while (n.getParent() != null) { + while (n.getParent() != null) + { n = n.getParent(); - if (n instanceof BehaviorReferenceTreeNode) { + if (n instanceof BehaviorReferenceTreeNode) + { ancestors.add(((BehaviorReferenceTreeNode) n).getEntry()); } } - if (ancestors.contains(node.getEntry())) { + if (ancestors.contains(node.getEntry())) + { continue; } diff --git a/src/main/java/cuchaz/enigma/analysis/BridgeMarker.java b/src/main/java/cuchaz/enigma/analysis/BridgeMarker.java index cd18584..0f4be7d 100644 --- a/src/main/java/cuchaz/enigma/analysis/BridgeMarker.java +++ b/src/main/java/cuchaz/enigma/analysis/BridgeMarker.java @@ -18,10 +18,10 @@ import javassist.bytecode.AccessFlag; public class BridgeMarker { - private JarIndex m_jarIndex; + private JarIndex jarIndex; public BridgeMarker(JarIndex jarIndex) { - this.m_jarIndex = jarIndex; + this.jarIndex = jarIndex; } public void markBridges(CtClass c) { @@ -30,7 +30,7 @@ public class BridgeMarker { MethodEntry methodEntry = EntryFactory.getMethodEntry(method); // is this a bridge method? - MethodEntry bridgedMethodEntry = this.m_jarIndex.getBridgedMethod(methodEntry); + MethodEntry bridgedMethodEntry = this.jarIndex.getBridgedMethod(methodEntry); if (bridgedMethodEntry != null) { // it's a bridge method! add the bridge flag diff --git a/src/main/java/cuchaz/enigma/analysis/JarIndex.java b/src/main/java/cuchaz/enigma/analysis/JarIndex.java index ee1dd54..e8f74cc 100644 --- a/src/main/java/cuchaz/enigma/analysis/JarIndex.java +++ b/src/main/java/cuchaz/enigma/analysis/JarIndex.java @@ -16,8 +16,6 @@ import java.lang.reflect.Modifier; import java.util.*; import java.util.jar.JarFile; -import cuchaz.enigma.Constants; -import cuchaz.enigma.bytecode.ClassRenamer; import cuchaz.enigma.mapping.*; import cuchaz.enigma.mapping.Translator; import javassist.*; diff --git a/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java b/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java index e690abd..bfd5a56 100644 --- a/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java +++ b/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java @@ -12,7 +12,6 @@ package cuchaz.enigma.analysis; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; -import com.google.common.collect.Multimaps; import com.strobel.assembler.metadata.MemberReference; import com.strobel.assembler.metadata.MethodReference; import com.strobel.assembler.metadata.ParameterDefinition; diff --git a/src/main/java/cuchaz/enigma/analysis/Token.java b/src/main/java/cuchaz/enigma/analysis/Token.java index 419842a..42f4660 100644 --- a/src/main/java/cuchaz/enigma/analysis/Token.java +++ b/src/main/java/cuchaz/enigma/analysis/Token.java @@ -38,6 +38,12 @@ public class Token implements Comparable { return other instanceof Token && equals((Token) other); } + @Override + public int hashCode() + { + return Integer.hashCode(start) + Integer.hashCode(end) + (text != null ? text.hashCode() : 0); + } + public boolean equals(Token other) { return start == other.start && end == other.end; } diff --git a/src/main/java/cuchaz/enigma/analysis/TreeDumpVisitor.java b/src/main/java/cuchaz/enigma/analysis/TreeDumpVisitor.java index de39d36..cc025da 100644 --- a/src/main/java/cuchaz/enigma/analysis/TreeDumpVisitor.java +++ b/src/main/java/cuchaz/enigma/analysis/TreeDumpVisitor.java @@ -19,20 +19,19 @@ import java.nio.charset.Charset; public class TreeDumpVisitor implements IAstVisitor { - private File m_file; - private Writer m_out; + private File file; + private Writer out; public TreeDumpVisitor(File file) { - m_file = file; - m_out = null; + this.file = file; } @Override public Void visitCompilationUnit(CompilationUnit node, Void ignored) { try { - m_out = new OutputStreamWriter(new FileOutputStream(m_file), Charset.forName("UTF-8")); + out = new OutputStreamWriter(new FileOutputStream(file), Charset.forName("UTF-8")); recurse(node, ignored); - m_out.close(); + out.close(); return null; } catch (IOException ex) { throw new Error(ex); @@ -42,7 +41,7 @@ public class TreeDumpVisitor implements IAstVisitor { private Void recurse(AstNode node, Void ignored) { // show the tree try { - m_out.write(getIndent(node) + node.getClass().getSimpleName() + " " + getText(node) + " " + dumpUserData(node) + " " + node.getRegion() + "\n"); + out.write(getIndent(node) + node.getClass().getSimpleName() + " " + getText(node) + " " + dumpUserData(node) + " " + node.getRegion() + "\n"); } catch (IOException ex) { throw new Error(ex); } -- cgit v1.2.3