summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar gegy10002018-05-19 17:06:26 +0200
committerGravatar gegy10002018-05-19 17:06:26 +0200
commit406b9a89318473571d27de60b8aa1b51f84af245 (patch)
tree4be0066dfe09eb98cd337779d8f759334276a18c /src
parentInitial port to ASM (diff)
downloadenigma-406b9a89318473571d27de60b8aa1b51f84af245.tar.gz
enigma-406b9a89318473571d27de60b8aa1b51f84af245.tar.xz
enigma-406b9a89318473571d27de60b8aa1b51f84af245.zip
Package updates
Diffstat (limited to 'src')
-rw-r--r--src/main/java/cuchaz/enigma/Deobfuscator.java1
-rw-r--r--src/main/java/cuchaz/enigma/TranslatingTypeLoader.java4
-rw-r--r--src/main/java/cuchaz/enigma/analysis/ClassImplementationsTreeNode.java4
-rw-r--r--src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java2
-rw-r--r--src/main/java/cuchaz/enigma/analysis/EntryReference.java6
-rw-r--r--src/main/java/cuchaz/enigma/analysis/EntryRenamer.java1
-rw-r--r--src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java3
-rw-r--r--src/main/java/cuchaz/enigma/analysis/IndexClassVisitor.java2
-rw-r--r--src/main/java/cuchaz/enigma/analysis/IndexInnerClassVisitor.java2
-rw-r--r--src/main/java/cuchaz/enigma/analysis/IndexReferenceVisitor.java3
-rw-r--r--src/main/java/cuchaz/enigma/analysis/JarIndex.java1
-rw-r--r--src/main/java/cuchaz/enigma/analysis/MethodImplementationsTreeNode.java4
-rw-r--r--src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java4
-rw-r--r--src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java3
-rw-r--r--src/main/java/cuchaz/enigma/analysis/ParsedJar.java2
-rw-r--r--src/main/java/cuchaz/enigma/analysis/ReferenceTreeNode.java2
-rw-r--r--src/main/java/cuchaz/enigma/analysis/SourceIndex.java2
-rw-r--r--src/main/java/cuchaz/enigma/analysis/SourceIndexClassVisitor.java2
-rw-r--r--src/main/java/cuchaz/enigma/analysis/SourceIndexMethodVisitor.java1
-rw-r--r--src/main/java/cuchaz/enigma/analysis/SourceIndexVisitor.java4
-rw-r--r--src/main/java/cuchaz/enigma/analysis/TranslationIndex.java1
-rw-r--r--src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java1
-rw-r--r--src/main/java/cuchaz/enigma/bytecode/translators/TranslationMethodVisitor.java1
-rw-r--r--src/main/java/cuchaz/enigma/gui/ClassSelector.java2
-rw-r--r--src/main/java/cuchaz/enigma/gui/CodeReader.java4
-rw-r--r--src/main/java/cuchaz/enigma/gui/Gui.java1
-rw-r--r--src/main/java/cuchaz/enigma/gui/GuiController.java4
-rw-r--r--src/main/java/cuchaz/enigma/gui/ScoredClassEntry.java2
-rw-r--r--src/main/java/cuchaz/enigma/gui/node/ClassSelectorClassNode.java2
-rw-r--r--src/main/java/cuchaz/enigma/gui/panels/PanelObf.java2
-rw-r--r--src/main/java/cuchaz/enigma/mapping/ClassMapping.java3
-rw-r--r--src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java1
-rw-r--r--src/main/java/cuchaz/enigma/mapping/FieldMapping.java2
-rw-r--r--src/main/java/cuchaz/enigma/mapping/LocalVariableMapping.java3
-rw-r--r--src/main/java/cuchaz/enigma/mapping/Mappings.java2
-rw-r--r--src/main/java/cuchaz/enigma/mapping/MappingsChecker.java4
-rw-r--r--src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java1
-rw-r--r--src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java1
-rw-r--r--src/main/java/cuchaz/enigma/mapping/MappingsTinyReader.java1
-rw-r--r--src/main/java/cuchaz/enigma/mapping/MemberMapping.java3
-rw-r--r--src/main/java/cuchaz/enigma/mapping/MethodDescriptor.java1
-rw-r--r--src/main/java/cuchaz/enigma/mapping/MethodMapping.java2
-rw-r--r--src/main/java/cuchaz/enigma/mapping/NameValidator.java1
-rw-r--r--src/main/java/cuchaz/enigma/mapping/Translator.java2
-rw-r--r--src/main/java/cuchaz/enigma/mapping/Type.java235
-rw-r--r--src/main/java/cuchaz/enigma/mapping/TypeDescriptor.java1
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/ClassDefEntry.java (renamed from src/main/java/cuchaz/enigma/mapping/ClassDefEntry.java)2
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/ClassEntry.java (renamed from src/main/java/cuchaz/enigma/mapping/ClassEntry.java)2
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/Entry.java (renamed from src/main/java/cuchaz/enigma/mapping/Entry.java)2
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/EntryFactory.java (renamed from src/main/java/cuchaz/enigma/mapping/EntryFactory.java)6
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/FieldDefEntry.java (renamed from src/main/java/cuchaz/enigma/mapping/FieldDefEntry.java)3
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/FieldEntry.java (renamed from src/main/java/cuchaz/enigma/mapping/FieldEntry.java)3
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/LocalVariableDefEntry.java (renamed from src/main/java/cuchaz/enigma/mapping/LocalVariableDefEntry.java)3
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/LocalVariableEntry.java (renamed from src/main/java/cuchaz/enigma/mapping/LocalVariableEntry.java)3
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java (renamed from src/main/java/cuchaz/enigma/mapping/MethodDefEntry.java)3
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/MethodEntry.java (renamed from src/main/java/cuchaz/enigma/mapping/MethodEntry.java)3
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/ProcyonEntryFactory.java (renamed from src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java)4
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/ReferencedEntryPool.java (renamed from src/main/java/cuchaz/enigma/mapping/ReferencedEntryPool.java)5
-rw-r--r--src/test/java/cuchaz/enigma/TestDeobfed.java2
-rw-r--r--src/test/java/cuchaz/enigma/TestDeobfuscator.java2
-rw-r--r--src/test/java/cuchaz/enigma/TestEntryFactory.java3
-rw-r--r--src/test/java/cuchaz/enigma/TestInnerClasses.java4
-rw-r--r--src/test/java/cuchaz/enigma/TestJarIndexConstructorReferences.java8
-rw-r--r--src/test/java/cuchaz/enigma/TestJarIndexInheritanceTree.java2
-rw-r--r--src/test/java/cuchaz/enigma/TestJarIndexLoneClass.java1
-rw-r--r--src/test/java/cuchaz/enigma/TestSourceIndex.java2
-rw-r--r--src/test/java/cuchaz/enigma/TestTokensConstructors.java2
-rw-r--r--src/test/java/cuchaz/enigma/TestTranslator.java2
-rw-r--r--src/test/java/cuchaz/enigma/TestType.java243
-rw-r--r--src/test/java/cuchaz/enigma/TokenChecker.java2
70 files changed, 119 insertions, 529 deletions
diff --git a/src/main/java/cuchaz/enigma/Deobfuscator.java b/src/main/java/cuchaz/enigma/Deobfuscator.java
index e1454c7e..3433ca9c 100644
--- a/src/main/java/cuchaz/enigma/Deobfuscator.java
+++ b/src/main/java/cuchaz/enigma/Deobfuscator.java
@@ -29,6 +29,7 @@ import cuchaz.enigma.analysis.*;
29import cuchaz.enigma.bytecode.ClassProtectifier; 29import cuchaz.enigma.bytecode.ClassProtectifier;
30import cuchaz.enigma.bytecode.ClassPublifier; 30import cuchaz.enigma.bytecode.ClassPublifier;
31import cuchaz.enigma.mapping.*; 31import cuchaz.enigma.mapping.*;
32import cuchaz.enigma.mapping.entry.*;
32import cuchaz.enigma.throwables.IllegalNameException; 33import cuchaz.enigma.throwables.IllegalNameException;
33import cuchaz.enigma.utils.Utils; 34import cuchaz.enigma.utils.Utils;
34import org.objectweb.asm.ClassWriter; 35import org.objectweb.asm.ClassWriter;
diff --git a/src/main/java/cuchaz/enigma/TranslatingTypeLoader.java b/src/main/java/cuchaz/enigma/TranslatingTypeLoader.java
index c91070fc..3f1ff7a1 100644
--- a/src/main/java/cuchaz/enigma/TranslatingTypeLoader.java
+++ b/src/main/java/cuchaz/enigma/TranslatingTypeLoader.java
@@ -19,8 +19,8 @@ import com.strobel.assembler.metadata.ITypeLoader;
19import cuchaz.enigma.analysis.JarIndex; 19import cuchaz.enigma.analysis.JarIndex;
20import cuchaz.enigma.analysis.ParsedJar; 20import cuchaz.enigma.analysis.ParsedJar;
21import cuchaz.enigma.bytecode.translators.TranslationClassVisitor; 21import cuchaz.enigma.bytecode.translators.TranslationClassVisitor;
22import cuchaz.enigma.mapping.ClassEntry; 22import cuchaz.enigma.mapping.entry.ClassEntry;
23import cuchaz.enigma.mapping.ReferencedEntryPool; 23import cuchaz.enigma.mapping.entry.ReferencedEntryPool;
24import cuchaz.enigma.mapping.Translator; 24import cuchaz.enigma.mapping.Translator;
25import org.objectweb.asm.ClassWriter; 25import org.objectweb.asm.ClassWriter;
26import org.objectweb.asm.Opcodes; 26import org.objectweb.asm.Opcodes;
diff --git a/src/main/java/cuchaz/enigma/analysis/ClassImplementationsTreeNode.java b/src/main/java/cuchaz/enigma/analysis/ClassImplementationsTreeNode.java
index d0e1ddbe..e876bb07 100644
--- a/src/main/java/cuchaz/enigma/analysis/ClassImplementationsTreeNode.java
+++ b/src/main/java/cuchaz/enigma/analysis/ClassImplementationsTreeNode.java
@@ -12,8 +12,8 @@
12package cuchaz.enigma.analysis; 12package cuchaz.enigma.analysis;
13 13
14import com.google.common.collect.Lists; 14import com.google.common.collect.Lists;
15import cuchaz.enigma.mapping.ClassEntry; 15import cuchaz.enigma.mapping.entry.ClassEntry;
16import cuchaz.enigma.mapping.MethodEntry; 16import cuchaz.enigma.mapping.entry.MethodEntry;
17import cuchaz.enigma.mapping.Translator; 17import cuchaz.enigma.mapping.Translator;
18 18
19import javax.swing.tree.DefaultMutableTreeNode; 19import javax.swing.tree.DefaultMutableTreeNode;
diff --git a/src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java b/src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java
index 8fd71b7f..b8ee17da 100644
--- a/src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java
+++ b/src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java
@@ -12,7 +12,7 @@
12package cuchaz.enigma.analysis; 12package cuchaz.enigma.analysis;
13 13
14import com.google.common.collect.Lists; 14import com.google.common.collect.Lists;
15import cuchaz.enigma.mapping.ClassEntry; 15import cuchaz.enigma.mapping.entry.ClassEntry;
16import cuchaz.enigma.mapping.Translator; 16import cuchaz.enigma.mapping.Translator;
17 17
18import javax.swing.tree.DefaultMutableTreeNode; 18import javax.swing.tree.DefaultMutableTreeNode;
diff --git a/src/main/java/cuchaz/enigma/analysis/EntryReference.java b/src/main/java/cuchaz/enigma/analysis/EntryReference.java
index b972585a..101729d8 100644
--- a/src/main/java/cuchaz/enigma/analysis/EntryReference.java
+++ b/src/main/java/cuchaz/enigma/analysis/EntryReference.java
@@ -11,9 +11,9 @@
11 11
12package cuchaz.enigma.analysis; 12package cuchaz.enigma.analysis;
13 13
14import cuchaz.enigma.mapping.ClassEntry; 14import cuchaz.enigma.mapping.entry.ClassEntry;
15import cuchaz.enigma.mapping.Entry; 15import cuchaz.enigma.mapping.entry.Entry;
16import cuchaz.enigma.mapping.MethodEntry; 16import cuchaz.enigma.mapping.entry.MethodEntry;
17import cuchaz.enigma.utils.Utils; 17import cuchaz.enigma.utils.Utils;
18 18
19import java.util.Arrays; 19import java.util.Arrays;
diff --git a/src/main/java/cuchaz/enigma/analysis/EntryRenamer.java b/src/main/java/cuchaz/enigma/analysis/EntryRenamer.java
index b0bcc91e..656fa320 100644
--- a/src/main/java/cuchaz/enigma/analysis/EntryRenamer.java
+++ b/src/main/java/cuchaz/enigma/analysis/EntryRenamer.java
@@ -15,6 +15,7 @@ import com.google.common.collect.Lists;
15import com.google.common.collect.Multimap; 15import com.google.common.collect.Multimap;
16import com.google.common.collect.Sets; 16import com.google.common.collect.Sets;
17import cuchaz.enigma.mapping.*; 17import cuchaz.enigma.mapping.*;
18import cuchaz.enigma.mapping.entry.*;
18 19
19import java.util.AbstractMap; 20import java.util.AbstractMap;
20import java.util.List; 21import java.util.List;
diff --git a/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java b/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
index 3e467dba..3d0e48b4 100644
--- a/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
+++ b/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
@@ -12,6 +12,9 @@
12package cuchaz.enigma.analysis; 12package cuchaz.enigma.analysis;
13 13
14import cuchaz.enigma.mapping.*; 14import cuchaz.enigma.mapping.*;
15import cuchaz.enigma.mapping.entry.FieldEntry;
16import cuchaz.enigma.mapping.entry.MethodDefEntry;
17import cuchaz.enigma.mapping.entry.MethodEntry;
15 18
16import javax.swing.tree.DefaultMutableTreeNode; 19import javax.swing.tree.DefaultMutableTreeNode;
17 20
diff --git a/src/main/java/cuchaz/enigma/analysis/IndexClassVisitor.java b/src/main/java/cuchaz/enigma/analysis/IndexClassVisitor.java
index 97d6ffa2..7828fa94 100644
--- a/src/main/java/cuchaz/enigma/analysis/IndexClassVisitor.java
+++ b/src/main/java/cuchaz/enigma/analysis/IndexClassVisitor.java
@@ -1,6 +1,6 @@
1package cuchaz.enigma.analysis; 1package cuchaz.enigma.analysis;
2 2
3import cuchaz.enigma.mapping.ClassDefEntry; 3import cuchaz.enigma.mapping.entry.ClassDefEntry;
4import org.objectweb.asm.ClassVisitor; 4import org.objectweb.asm.ClassVisitor;
5import org.objectweb.asm.FieldVisitor; 5import org.objectweb.asm.FieldVisitor;
6import org.objectweb.asm.MethodVisitor; 6import org.objectweb.asm.MethodVisitor;
diff --git a/src/main/java/cuchaz/enigma/analysis/IndexInnerClassVisitor.java b/src/main/java/cuchaz/enigma/analysis/IndexInnerClassVisitor.java
index 621bd33b..04742278 100644
--- a/src/main/java/cuchaz/enigma/analysis/IndexInnerClassVisitor.java
+++ b/src/main/java/cuchaz/enigma/analysis/IndexInnerClassVisitor.java
@@ -1,6 +1,6 @@
1package cuchaz.enigma.analysis; 1package cuchaz.enigma.analysis;
2 2
3import cuchaz.enigma.mapping.ClassEntry; 3import cuchaz.enigma.mapping.entry.ClassEntry;
4import org.objectweb.asm.ClassVisitor; 4import org.objectweb.asm.ClassVisitor;
5 5
6public class IndexInnerClassVisitor extends ClassVisitor { 6public class IndexInnerClassVisitor extends ClassVisitor {
diff --git a/src/main/java/cuchaz/enigma/analysis/IndexReferenceVisitor.java b/src/main/java/cuchaz/enigma/analysis/IndexReferenceVisitor.java
index 552601b6..bd64bfc1 100644
--- a/src/main/java/cuchaz/enigma/analysis/IndexReferenceVisitor.java
+++ b/src/main/java/cuchaz/enigma/analysis/IndexReferenceVisitor.java
@@ -2,6 +2,9 @@ package cuchaz.enigma.analysis;
2 2
3import cuchaz.enigma.bytecode.AccessFlags; 3import cuchaz.enigma.bytecode.AccessFlags;
4import cuchaz.enigma.mapping.*; 4import cuchaz.enigma.mapping.*;
5import cuchaz.enigma.mapping.entry.ClassEntry;
6import cuchaz.enigma.mapping.entry.MethodDefEntry;
7import cuchaz.enigma.mapping.entry.ReferencedEntryPool;
5import org.objectweb.asm.ClassVisitor; 8import org.objectweb.asm.ClassVisitor;
6import org.objectweb.asm.MethodVisitor; 9import org.objectweb.asm.MethodVisitor;
7 10
diff --git a/src/main/java/cuchaz/enigma/analysis/JarIndex.java b/src/main/java/cuchaz/enigma/analysis/JarIndex.java
index 972d4fe0..54dd5068 100644
--- a/src/main/java/cuchaz/enigma/analysis/JarIndex.java
+++ b/src/main/java/cuchaz/enigma/analysis/JarIndex.java
@@ -14,6 +14,7 @@ package cuchaz.enigma.analysis;
14import com.google.common.collect.*; 14import com.google.common.collect.*;
15import cuchaz.enigma.bytecode.AccessFlags; 15import cuchaz.enigma.bytecode.AccessFlags;
16import cuchaz.enigma.mapping.*; 16import cuchaz.enigma.mapping.*;
17import cuchaz.enigma.mapping.entry.*;
17import org.objectweb.asm.Opcodes; 18import org.objectweb.asm.Opcodes;
18 19
19import java.util.*; 20import java.util.*;
diff --git a/src/main/java/cuchaz/enigma/analysis/MethodImplementationsTreeNode.java b/src/main/java/cuchaz/enigma/analysis/MethodImplementationsTreeNode.java
index 6791b831..723fffed 100644
--- a/src/main/java/cuchaz/enigma/analysis/MethodImplementationsTreeNode.java
+++ b/src/main/java/cuchaz/enigma/analysis/MethodImplementationsTreeNode.java
@@ -12,8 +12,8 @@
12package cuchaz.enigma.analysis; 12package cuchaz.enigma.analysis;
13 13
14import com.google.common.collect.Lists; 14import com.google.common.collect.Lists;
15import cuchaz.enigma.mapping.ClassEntry; 15import cuchaz.enigma.mapping.entry.ClassEntry;
16import cuchaz.enigma.mapping.MethodEntry; 16import cuchaz.enigma.mapping.entry.MethodEntry;
17import cuchaz.enigma.mapping.Translator; 17import cuchaz.enigma.mapping.Translator;
18 18
19import javax.swing.tree.DefaultMutableTreeNode; 19import javax.swing.tree.DefaultMutableTreeNode;
diff --git a/src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java b/src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java
index f060ed9d..904e5945 100644
--- a/src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java
+++ b/src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java
@@ -12,8 +12,8 @@
12package cuchaz.enigma.analysis; 12package cuchaz.enigma.analysis;
13 13
14import com.google.common.collect.Lists; 14import com.google.common.collect.Lists;
15import cuchaz.enigma.mapping.ClassEntry; 15import cuchaz.enigma.mapping.entry.ClassEntry;
16import cuchaz.enigma.mapping.MethodEntry; 16import cuchaz.enigma.mapping.entry.MethodEntry;
17import cuchaz.enigma.mapping.Translator; 17import cuchaz.enigma.mapping.Translator;
18 18
19import javax.swing.tree.DefaultMutableTreeNode; 19import javax.swing.tree.DefaultMutableTreeNode;
diff --git a/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java b/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java
index 37b40730..15ae5153 100644
--- a/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java
+++ b/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java
@@ -13,6 +13,9 @@ package cuchaz.enigma.analysis;
13 13
14import com.google.common.collect.Sets; 14import com.google.common.collect.Sets;
15import cuchaz.enigma.mapping.*; 15import cuchaz.enigma.mapping.*;
16import cuchaz.enigma.mapping.entry.Entry;
17import cuchaz.enigma.mapping.entry.MethodDefEntry;
18import cuchaz.enigma.mapping.entry.MethodEntry;
16 19
17import javax.swing.tree.DefaultMutableTreeNode; 20import javax.swing.tree.DefaultMutableTreeNode;
18import javax.swing.tree.TreeNode; 21import javax.swing.tree.TreeNode;
diff --git a/src/main/java/cuchaz/enigma/analysis/ParsedJar.java b/src/main/java/cuchaz/enigma/analysis/ParsedJar.java
index 78ef722d..fae58f80 100644
--- a/src/main/java/cuchaz/enigma/analysis/ParsedJar.java
+++ b/src/main/java/cuchaz/enigma/analysis/ParsedJar.java
@@ -11,7 +11,7 @@
11 11
12package cuchaz.enigma.analysis; 12package cuchaz.enigma.analysis;
13 13
14import cuchaz.enigma.mapping.ClassEntry; 14import cuchaz.enigma.mapping.entry.ClassEntry;
15import org.objectweb.asm.ClassReader; 15import org.objectweb.asm.ClassReader;
16import org.objectweb.asm.tree.ClassNode; 16import org.objectweb.asm.tree.ClassNode;
17 17
diff --git a/src/main/java/cuchaz/enigma/analysis/ReferenceTreeNode.java b/src/main/java/cuchaz/enigma/analysis/ReferenceTreeNode.java
index 04693637..3950d165 100644
--- a/src/main/java/cuchaz/enigma/analysis/ReferenceTreeNode.java
+++ b/src/main/java/cuchaz/enigma/analysis/ReferenceTreeNode.java
@@ -11,7 +11,7 @@
11 11
12package cuchaz.enigma.analysis; 12package cuchaz.enigma.analysis;
13 13
14import cuchaz.enigma.mapping.Entry; 14import cuchaz.enigma.mapping.entry.Entry;
15 15
16public interface ReferenceTreeNode<E extends Entry, C extends Entry> { 16public interface ReferenceTreeNode<E extends Entry, C extends Entry> {
17 E getEntry(); 17 E getEntry();
diff --git a/src/main/java/cuchaz/enigma/analysis/SourceIndex.java b/src/main/java/cuchaz/enigma/analysis/SourceIndex.java
index 19250c8d..14b2e768 100644
--- a/src/main/java/cuchaz/enigma/analysis/SourceIndex.java
+++ b/src/main/java/cuchaz/enigma/analysis/SourceIndex.java
@@ -18,7 +18,7 @@ import com.google.common.collect.Multimap;
18import com.strobel.decompiler.languages.Region; 18import com.strobel.decompiler.languages.Region;
19import com.strobel.decompiler.languages.java.ast.AstNode; 19import com.strobel.decompiler.languages.java.ast.AstNode;
20import com.strobel.decompiler.languages.java.ast.Identifier; 20import com.strobel.decompiler.languages.java.ast.Identifier;
21import cuchaz.enigma.mapping.Entry; 21import cuchaz.enigma.mapping.entry.Entry;
22 22
23import java.util.Collection; 23import java.util.Collection;
24import java.util.List; 24import java.util.List;
diff --git a/src/main/java/cuchaz/enigma/analysis/SourceIndexClassVisitor.java b/src/main/java/cuchaz/enigma/analysis/SourceIndexClassVisitor.java
index 015eaac6..1e2eed8d 100644
--- a/src/main/java/cuchaz/enigma/analysis/SourceIndexClassVisitor.java
+++ b/src/main/java/cuchaz/enigma/analysis/SourceIndexClassVisitor.java
@@ -17,7 +17,7 @@ import com.strobel.assembler.metadata.TypeDefinition;
17import com.strobel.assembler.metadata.TypeReference; 17import com.strobel.assembler.metadata.TypeReference;
18import com.strobel.decompiler.languages.TextLocation; 18import com.strobel.decompiler.languages.TextLocation;
19import com.strobel.decompiler.languages.java.ast.*; 19import com.strobel.decompiler.languages.java.ast.*;
20import cuchaz.enigma.mapping.*; 20import cuchaz.enigma.mapping.entry.*;
21 21
22public class SourceIndexClassVisitor extends SourceIndexVisitor { 22public class SourceIndexClassVisitor extends SourceIndexVisitor {
23 private final ReferencedEntryPool entryPool; 23 private final ReferencedEntryPool entryPool;
diff --git a/src/main/java/cuchaz/enigma/analysis/SourceIndexMethodVisitor.java b/src/main/java/cuchaz/enigma/analysis/SourceIndexMethodVisitor.java
index 2a62241d..01e773b3 100644
--- a/src/main/java/cuchaz/enigma/analysis/SourceIndexMethodVisitor.java
+++ b/src/main/java/cuchaz/enigma/analysis/SourceIndexMethodVisitor.java
@@ -20,6 +20,7 @@ import com.strobel.assembler.metadata.TypeReference;
20import com.strobel.decompiler.languages.TextLocation; 20import com.strobel.decompiler.languages.TextLocation;
21import com.strobel.decompiler.languages.java.ast.*; 21import com.strobel.decompiler.languages.java.ast.*;
22import cuchaz.enigma.mapping.*; 22import cuchaz.enigma.mapping.*;
23import cuchaz.enigma.mapping.entry.*;
23 24
24import java.util.HashMap; 25import java.util.HashMap;
25import java.util.Map; 26import java.util.Map;
diff --git a/src/main/java/cuchaz/enigma/analysis/SourceIndexVisitor.java b/src/main/java/cuchaz/enigma/analysis/SourceIndexVisitor.java
index 241b9f7a..176f2838 100644
--- a/src/main/java/cuchaz/enigma/analysis/SourceIndexVisitor.java
+++ b/src/main/java/cuchaz/enigma/analysis/SourceIndexVisitor.java
@@ -14,8 +14,8 @@ package cuchaz.enigma.analysis;
14import com.strobel.assembler.metadata.TypeDefinition; 14import com.strobel.assembler.metadata.TypeDefinition;
15import com.strobel.decompiler.languages.java.ast.*; 15import com.strobel.decompiler.languages.java.ast.*;
16import com.strobel.decompiler.patterns.Pattern; 16import com.strobel.decompiler.patterns.Pattern;
17import cuchaz.enigma.mapping.ClassEntry; 17import cuchaz.enigma.mapping.entry.ClassEntry;
18import cuchaz.enigma.mapping.ReferencedEntryPool; 18import cuchaz.enigma.mapping.entry.ReferencedEntryPool;
19 19
20public class SourceIndexVisitor implements IAstVisitor<SourceIndex, Void> { 20public class SourceIndexVisitor implements IAstVisitor<SourceIndex, Void> {
21 private final ReferencedEntryPool entryPool; 21 private final ReferencedEntryPool entryPool;
diff --git a/src/main/java/cuchaz/enigma/analysis/TranslationIndex.java b/src/main/java/cuchaz/enigma/analysis/TranslationIndex.java
index 3cd80ffd..0c8ed9cd 100644
--- a/src/main/java/cuchaz/enigma/analysis/TranslationIndex.java
+++ b/src/main/java/cuchaz/enigma/analysis/TranslationIndex.java
@@ -17,6 +17,7 @@ import com.google.common.collect.Maps;
17import com.google.common.collect.Multimap; 17import com.google.common.collect.Multimap;
18import cuchaz.enigma.bytecode.AccessFlags; 18import cuchaz.enigma.bytecode.AccessFlags;
19import cuchaz.enigma.mapping.*; 19import cuchaz.enigma.mapping.*;
20import cuchaz.enigma.mapping.entry.*;
20 21
21import java.util.Collection; 22import java.util.Collection;
22import java.util.List; 23import java.util.List;
diff --git a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java
index 24bfe24d..3f61c291 100644
--- a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java
+++ b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java
@@ -14,6 +14,7 @@ package cuchaz.enigma.bytecode.translators;
14import cuchaz.enigma.analysis.JarIndex; 14import cuchaz.enigma.analysis.JarIndex;
15import cuchaz.enigma.bytecode.AccessFlags; 15import cuchaz.enigma.bytecode.AccessFlags;
16import cuchaz.enigma.mapping.*; 16import cuchaz.enigma.mapping.*;
17import cuchaz.enigma.mapping.entry.*;
17import org.objectweb.asm.*; 18import org.objectweb.asm.*;
18 19
19import java.util.regex.Pattern; 20import java.util.regex.Pattern;
diff --git a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationMethodVisitor.java b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationMethodVisitor.java
index e40becc4..b2192e47 100644
--- a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationMethodVisitor.java
+++ b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationMethodVisitor.java
@@ -1,6 +1,7 @@
1package cuchaz.enigma.bytecode.translators; 1package cuchaz.enigma.bytecode.translators;
2 2
3import cuchaz.enigma.mapping.*; 3import cuchaz.enigma.mapping.*;
4import cuchaz.enigma.mapping.entry.*;
4import org.objectweb.asm.*; 5import org.objectweb.asm.*;
5 6
6import java.util.Locale; 7import java.util.Locale;
diff --git a/src/main/java/cuchaz/enigma/gui/ClassSelector.java b/src/main/java/cuchaz/enigma/gui/ClassSelector.java
index ed84ef24..76e8c3fb 100644
--- a/src/main/java/cuchaz/enigma/gui/ClassSelector.java
+++ b/src/main/java/cuchaz/enigma/gui/ClassSelector.java
@@ -17,7 +17,7 @@ import com.google.common.collect.Maps;
17import com.google.common.collect.Multimap; 17import com.google.common.collect.Multimap;
18import cuchaz.enigma.gui.node.ClassSelectorClassNode; 18import cuchaz.enigma.gui.node.ClassSelectorClassNode;
19import cuchaz.enigma.gui.node.ClassSelectorPackageNode; 19import cuchaz.enigma.gui.node.ClassSelectorPackageNode;
20import cuchaz.enigma.mapping.ClassEntry; 20import cuchaz.enigma.mapping.entry.ClassEntry;
21import cuchaz.enigma.throwables.IllegalNameException; 21import cuchaz.enigma.throwables.IllegalNameException;
22 22
23import javax.swing.*; 23import javax.swing.*;
diff --git a/src/main/java/cuchaz/enigma/gui/CodeReader.java b/src/main/java/cuchaz/enigma/gui/CodeReader.java
index 97deaf3c..ac45b4a7 100644
--- a/src/main/java/cuchaz/enigma/gui/CodeReader.java
+++ b/src/main/java/cuchaz/enigma/gui/CodeReader.java
@@ -17,8 +17,8 @@ import cuchaz.enigma.analysis.EntryReference;
17import cuchaz.enigma.analysis.SourceIndex; 17import cuchaz.enigma.analysis.SourceIndex;
18import cuchaz.enigma.analysis.Token; 18import cuchaz.enigma.analysis.Token;
19import cuchaz.enigma.gui.highlight.SelectionHighlightPainter; 19import cuchaz.enigma.gui.highlight.SelectionHighlightPainter;
20import cuchaz.enigma.mapping.ClassEntry; 20import cuchaz.enigma.mapping.entry.ClassEntry;
21import cuchaz.enigma.mapping.Entry; 21import cuchaz.enigma.mapping.entry.Entry;
22import de.sciss.syntaxpane.DefaultSyntaxKit; 22import de.sciss.syntaxpane.DefaultSyntaxKit;
23 23
24import javax.swing.*; 24import javax.swing.*;
diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java
index 5d9f7cbb..cfac8ad8 100644
--- a/src/main/java/cuchaz/enigma/gui/Gui.java
+++ b/src/main/java/cuchaz/enigma/gui/Gui.java
@@ -32,6 +32,7 @@ import cuchaz.enigma.gui.panels.PanelEditor;
32import cuchaz.enigma.gui.panels.PanelIdentifier; 32import cuchaz.enigma.gui.panels.PanelIdentifier;
33import cuchaz.enigma.gui.panels.PanelObf; 33import cuchaz.enigma.gui.panels.PanelObf;
34import cuchaz.enigma.mapping.*; 34import cuchaz.enigma.mapping.*;
35import cuchaz.enigma.mapping.entry.*;
35import cuchaz.enigma.throwables.IllegalNameException; 36import cuchaz.enigma.throwables.IllegalNameException;
36import cuchaz.enigma.utils.Utils; 37import cuchaz.enigma.utils.Utils;
37import de.sciss.syntaxpane.DefaultSyntaxKit; 38import de.sciss.syntaxpane.DefaultSyntaxKit;
diff --git a/src/main/java/cuchaz/enigma/gui/GuiController.java b/src/main/java/cuchaz/enigma/gui/GuiController.java
index a5528a73..837cff20 100644
--- a/src/main/java/cuchaz/enigma/gui/GuiController.java
+++ b/src/main/java/cuchaz/enigma/gui/GuiController.java
@@ -18,6 +18,10 @@ import cuchaz.enigma.Deobfuscator;
18import cuchaz.enigma.analysis.*; 18import cuchaz.enigma.analysis.*;
19import cuchaz.enigma.gui.dialog.ProgressDialog; 19import cuchaz.enigma.gui.dialog.ProgressDialog;
20import cuchaz.enigma.mapping.*; 20import cuchaz.enigma.mapping.*;
21import cuchaz.enigma.mapping.entry.ClassEntry;
22import cuchaz.enigma.mapping.entry.Entry;
23import cuchaz.enigma.mapping.entry.FieldEntry;
24import cuchaz.enigma.mapping.entry.MethodEntry;
21import cuchaz.enigma.throwables.MappingParseException; 25import cuchaz.enigma.throwables.MappingParseException;
22import cuchaz.enigma.utils.ReadableToken; 26import cuchaz.enigma.utils.ReadableToken;
23 27
diff --git a/src/main/java/cuchaz/enigma/gui/ScoredClassEntry.java b/src/main/java/cuchaz/enigma/gui/ScoredClassEntry.java
index 1fd2fa85..34ec26ee 100644
--- a/src/main/java/cuchaz/enigma/gui/ScoredClassEntry.java
+++ b/src/main/java/cuchaz/enigma/gui/ScoredClassEntry.java
@@ -11,7 +11,7 @@
11 11
12package cuchaz.enigma.gui; 12package cuchaz.enigma.gui;
13 13
14import cuchaz.enigma.mapping.ClassEntry; 14import cuchaz.enigma.mapping.entry.ClassEntry;
15 15
16public class ScoredClassEntry extends ClassEntry { 16public class ScoredClassEntry extends ClassEntry {
17 17
diff --git a/src/main/java/cuchaz/enigma/gui/node/ClassSelectorClassNode.java b/src/main/java/cuchaz/enigma/gui/node/ClassSelectorClassNode.java
index dc933cd5..a965a8fa 100644
--- a/src/main/java/cuchaz/enigma/gui/node/ClassSelectorClassNode.java
+++ b/src/main/java/cuchaz/enigma/gui/node/ClassSelectorClassNode.java
@@ -11,7 +11,7 @@
11 11
12package cuchaz.enigma.gui.node; 12package cuchaz.enigma.gui.node;
13 13
14import cuchaz.enigma.mapping.ClassEntry; 14import cuchaz.enigma.mapping.entry.ClassEntry;
15 15
16import javax.swing.tree.DefaultMutableTreeNode; 16import javax.swing.tree.DefaultMutableTreeNode;
17 17
diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java b/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java
index 4bbd32bd..9eb8f8f8 100644
--- a/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java
+++ b/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java
@@ -2,7 +2,7 @@ package cuchaz.enigma.gui.panels;
2 2
3import cuchaz.enigma.gui.ClassSelector; 3import cuchaz.enigma.gui.ClassSelector;
4import cuchaz.enigma.gui.Gui; 4import cuchaz.enigma.gui.Gui;
5import cuchaz.enigma.mapping.ClassEntry; 5import cuchaz.enigma.mapping.entry.ClassEntry;
6 6
7import javax.swing.*; 7import javax.swing.*;
8import java.awt.*; 8import java.awt.*;
diff --git a/src/main/java/cuchaz/enigma/mapping/ClassMapping.java b/src/main/java/cuchaz/enigma/mapping/ClassMapping.java
index c782250d..d9de5678 100644
--- a/src/main/java/cuchaz/enigma/mapping/ClassMapping.java
+++ b/src/main/java/cuchaz/enigma/mapping/ClassMapping.java
@@ -12,6 +12,9 @@
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping;
13 13
14import com.google.common.collect.Maps; 14import com.google.common.collect.Maps;
15import cuchaz.enigma.mapping.entry.ClassEntry;
16import cuchaz.enigma.mapping.entry.FieldEntry;
17import cuchaz.enigma.mapping.entry.MethodEntry;
15import cuchaz.enigma.throwables.MappingConflict; 18import cuchaz.enigma.throwables.MappingConflict;
16 19
17import java.util.ArrayList; 20import java.util.ArrayList;
diff --git a/src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java b/src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java
index 12832673..c9e2ab49 100644
--- a/src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java
+++ b/src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java
@@ -15,6 +15,7 @@ import com.google.common.collect.Lists;
15import com.google.common.collect.Maps; 15import com.google.common.collect.Maps;
16import cuchaz.enigma.analysis.TranslationIndex; 16import cuchaz.enigma.analysis.TranslationIndex;
17import cuchaz.enigma.bytecode.AccessFlags; 17import cuchaz.enigma.bytecode.AccessFlags;
18import cuchaz.enigma.mapping.entry.*;
18 19
19import java.util.ArrayList; 20import java.util.ArrayList;
20import java.util.List; 21import java.util.List;
diff --git a/src/main/java/cuchaz/enigma/mapping/FieldMapping.java b/src/main/java/cuchaz/enigma/mapping/FieldMapping.java
index 3c46a37e..8fbe095b 100644
--- a/src/main/java/cuchaz/enigma/mapping/FieldMapping.java
+++ b/src/main/java/cuchaz/enigma/mapping/FieldMapping.java
@@ -11,6 +11,8 @@
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping;
13 13
14import cuchaz.enigma.mapping.entry.ClassEntry;
15import cuchaz.enigma.mapping.entry.FieldEntry;
14import cuchaz.enigma.throwables.IllegalNameException; 16import cuchaz.enigma.throwables.IllegalNameException;
15 17
16public class FieldMapping implements Comparable<FieldMapping>, MemberMapping<FieldEntry> { 18public class FieldMapping implements Comparable<FieldMapping>, MemberMapping<FieldEntry> {
diff --git a/src/main/java/cuchaz/enigma/mapping/LocalVariableMapping.java b/src/main/java/cuchaz/enigma/mapping/LocalVariableMapping.java
index 193c566e..62dbcf31 100644
--- a/src/main/java/cuchaz/enigma/mapping/LocalVariableMapping.java
+++ b/src/main/java/cuchaz/enigma/mapping/LocalVariableMapping.java
@@ -11,6 +11,9 @@
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping;
13 13
14import cuchaz.enigma.mapping.entry.LocalVariableEntry;
15import cuchaz.enigma.mapping.entry.MethodEntry;
16
14public class LocalVariableMapping implements Comparable<LocalVariableMapping> { 17public class LocalVariableMapping implements Comparable<LocalVariableMapping> {
15 18
16 private int index; 19 private int index;
diff --git a/src/main/java/cuchaz/enigma/mapping/Mappings.java b/src/main/java/cuchaz/enigma/mapping/Mappings.java
index cc1ec9cc..9b907a9c 100644
--- a/src/main/java/cuchaz/enigma/mapping/Mappings.java
+++ b/src/main/java/cuchaz/enigma/mapping/Mappings.java
@@ -16,6 +16,8 @@ import com.google.common.collect.Maps;
16import com.google.common.collect.Sets; 16import com.google.common.collect.Sets;
17import cuchaz.enigma.analysis.TranslationIndex; 17import cuchaz.enigma.analysis.TranslationIndex;
18import cuchaz.enigma.bytecode.AccessFlags; 18import cuchaz.enigma.bytecode.AccessFlags;
19import cuchaz.enigma.mapping.entry.ClassEntry;
20import cuchaz.enigma.mapping.entry.MethodEntry;
19import cuchaz.enigma.throwables.MappingConflict; 21import cuchaz.enigma.throwables.MappingConflict;
20 22
21import java.io.File; 23import java.io.File;
diff --git a/src/main/java/cuchaz/enigma/mapping/MappingsChecker.java b/src/main/java/cuchaz/enigma/mapping/MappingsChecker.java
index 4d5be2f6..a42f255a 100644
--- a/src/main/java/cuchaz/enigma/mapping/MappingsChecker.java
+++ b/src/main/java/cuchaz/enigma/mapping/MappingsChecker.java
@@ -14,6 +14,10 @@ package cuchaz.enigma.mapping;
14import com.google.common.collect.Lists; 14import com.google.common.collect.Lists;
15import com.google.common.collect.Maps; 15import com.google.common.collect.Maps;
16import cuchaz.enigma.analysis.JarIndex; 16import cuchaz.enigma.analysis.JarIndex;
17import cuchaz.enigma.mapping.entry.ClassEntry;
18import cuchaz.enigma.mapping.entry.EntryFactory;
19import cuchaz.enigma.mapping.entry.FieldEntry;
20import cuchaz.enigma.mapping.entry.MethodEntry;
17 21
18import java.util.Map; 22import java.util.Map;
19 23
diff --git a/src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java b/src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java
index e215a0fc..85b6d2ab 100644
--- a/src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java
+++ b/src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java
@@ -13,6 +13,7 @@ package cuchaz.enigma.mapping;
13 13
14import com.google.common.collect.Lists; 14import com.google.common.collect.Lists;
15import cuchaz.enigma.analysis.JarIndex; 15import cuchaz.enigma.analysis.JarIndex;
16import cuchaz.enigma.mapping.entry.*;
16import cuchaz.enigma.throwables.IllegalNameException; 17import cuchaz.enigma.throwables.IllegalNameException;
17import cuchaz.enigma.throwables.MappingConflict; 18import cuchaz.enigma.throwables.MappingConflict;
18 19
diff --git a/src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java b/src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java
index 95daa73f..32f0ee9f 100644
--- a/src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java
+++ b/src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java
@@ -2,6 +2,7 @@ package cuchaz.enigma.mapping;
2 2
3import com.google.common.base.Charsets; 3import com.google.common.base.Charsets;
4import cuchaz.enigma.analysis.TranslationIndex; 4import cuchaz.enigma.analysis.TranslationIndex;
5import cuchaz.enigma.mapping.entry.ReferencedEntryPool;
5 6
6import java.io.*; 7import java.io.*;
7import java.util.ArrayList; 8import java.util.ArrayList;
diff --git a/src/main/java/cuchaz/enigma/mapping/MappingsTinyReader.java b/src/main/java/cuchaz/enigma/mapping/MappingsTinyReader.java
index e635fa18..e5734a3a 100644
--- a/src/main/java/cuchaz/enigma/mapping/MappingsTinyReader.java
+++ b/src/main/java/cuchaz/enigma/mapping/MappingsTinyReader.java
@@ -2,6 +2,7 @@ package cuchaz.enigma.mapping;
2 2
3import com.google.common.base.Charsets; 3import com.google.common.base.Charsets;
4import com.google.common.collect.Maps; 4import com.google.common.collect.Maps;
5import cuchaz.enigma.mapping.entry.ClassEntry;
5import cuchaz.enigma.throwables.MappingConflict; 6import cuchaz.enigma.throwables.MappingConflict;
6import cuchaz.enigma.throwables.MappingParseException; 7import cuchaz.enigma.throwables.MappingParseException;
7 8
diff --git a/src/main/java/cuchaz/enigma/mapping/MemberMapping.java b/src/main/java/cuchaz/enigma/mapping/MemberMapping.java
index d4514d42..6effb91f 100644
--- a/src/main/java/cuchaz/enigma/mapping/MemberMapping.java
+++ b/src/main/java/cuchaz/enigma/mapping/MemberMapping.java
@@ -11,6 +11,9 @@
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping;
13 13
14import cuchaz.enigma.mapping.entry.ClassEntry;
15import cuchaz.enigma.mapping.entry.Entry;
16
14public interface MemberMapping<T extends Entry> { 17public interface MemberMapping<T extends Entry> {
15 T getObfEntry(ClassEntry classEntry); 18 T getObfEntry(ClassEntry classEntry);
16 19
diff --git a/src/main/java/cuchaz/enigma/mapping/MethodDescriptor.java b/src/main/java/cuchaz/enigma/mapping/MethodDescriptor.java
index 210ada07..b56d1d48 100644
--- a/src/main/java/cuchaz/enigma/mapping/MethodDescriptor.java
+++ b/src/main/java/cuchaz/enigma/mapping/MethodDescriptor.java
@@ -12,6 +12,7 @@
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping;
13 13
14import com.google.common.collect.Lists; 14import com.google.common.collect.Lists;
15import cuchaz.enigma.mapping.entry.ClassEntry;
15import cuchaz.enigma.utils.Utils; 16import cuchaz.enigma.utils.Utils;
16 17
17import java.util.ArrayList; 18import java.util.ArrayList;
diff --git a/src/main/java/cuchaz/enigma/mapping/MethodMapping.java b/src/main/java/cuchaz/enigma/mapping/MethodMapping.java
index 2f7fe53c..363bab80 100644
--- a/src/main/java/cuchaz/enigma/mapping/MethodMapping.java
+++ b/src/main/java/cuchaz/enigma/mapping/MethodMapping.java
@@ -13,6 +13,8 @@ package cuchaz.enigma.mapping;
13 13
14import com.google.common.base.Preconditions; 14import com.google.common.base.Preconditions;
15import com.google.common.collect.Maps; 15import com.google.common.collect.Maps;
16import cuchaz.enigma.mapping.entry.ClassEntry;
17import cuchaz.enigma.mapping.entry.MethodEntry;
16import cuchaz.enigma.throwables.IllegalNameException; 18import cuchaz.enigma.throwables.IllegalNameException;
17import cuchaz.enigma.throwables.MappingConflict; 19import cuchaz.enigma.throwables.MappingConflict;
18 20
diff --git a/src/main/java/cuchaz/enigma/mapping/NameValidator.java b/src/main/java/cuchaz/enigma/mapping/NameValidator.java
index f178093d..9273c9bc 100644
--- a/src/main/java/cuchaz/enigma/mapping/NameValidator.java
+++ b/src/main/java/cuchaz/enigma/mapping/NameValidator.java
@@ -11,6 +11,7 @@
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping;
13 13
14import cuchaz.enigma.mapping.entry.ClassEntry;
14import cuchaz.enigma.throwables.IllegalNameException; 15import cuchaz.enigma.throwables.IllegalNameException;
15 16
16import java.util.Arrays; 17import java.util.Arrays;
diff --git a/src/main/java/cuchaz/enigma/mapping/Translator.java b/src/main/java/cuchaz/enigma/mapping/Translator.java
index 59bdf1a3..ab55a02d 100644
--- a/src/main/java/cuchaz/enigma/mapping/Translator.java
+++ b/src/main/java/cuchaz/enigma/mapping/Translator.java
@@ -11,6 +11,8 @@
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping;
13 13
14import cuchaz.enigma.mapping.entry.*;
15
14public interface Translator { 16public interface Translator {
15 ClassEntry getTranslatedClass(ClassEntry entry); 17 ClassEntry getTranslatedClass(ClassEntry entry);
16 18
diff --git a/src/main/java/cuchaz/enigma/mapping/Type.java b/src/main/java/cuchaz/enigma/mapping/Type.java
deleted file mode 100644
index 609bd64e..00000000
--- a/src/main/java/cuchaz/enigma/mapping/Type.java
+++ /dev/null
@@ -1,235 +0,0 @@
1/*******************************************************************************
2 * Copyright (c) 2015 Jeff Martin.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the GNU Lesser General Public
5 * License v3.0 which accompanies this distribution, and is available at
6 * http://www.gnu.org/licenses/lgpl.html
7 * <p>
8 * Contributors:
9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/
11
12package cuchaz.enigma.mapping;
13
14import com.google.common.collect.Maps;
15
16import java.util.Map;
17
18public class Type {
19
20 protected String name;
21
22 public Type(String name) {
23
24 // don't deal with generics
25 // this is just for raw jvm types
26 if (name.charAt(0) == 'T' || name.indexOf('<') >= 0 || name.indexOf('>') >= 0) {
27 throw new IllegalArgumentException("don't use with generic types or templates: " + name);
28 }
29
30 this.name = name;
31 }
32
33 public Type(Type other, ClassNameReplacer replacer) {
34 this.name = other.name;
35 if (other.isClass()) {
36 String replacedName = replacer.replace(other.getClassEntry().getClassName());
37 if (replacedName != null) {
38 this.name = "L" + replacedName + ";";
39 }
40 } else if (other.isArray() && other.hasClass()) {
41 String replacedName = replacer.replace(other.getClassEntry().getClassName());
42 if (replacedName != null) {
43 this.name = Type.getArrayPrefix(other.getArrayDimension()) + "L" + replacedName + ";";
44 }
45 }
46 }
47
48 public static String parseFirst(String in) {
49
50 if (in == null || in.length() <= 0) {
51 throw new IllegalArgumentException("No type to parse, input is empty!");
52 }
53
54 // read one type from the input
55
56 char c = in.charAt(0);
57
58 // first check for void
59 if (c == 'V') {
60 return "V";
61 }
62
63 // then check for primitives
64 Primitive primitive = Primitive.get(c);
65 if (primitive != null) {
66 return in.substring(0, 1);
67 }
68
69 // then check for classes
70 if (c == 'L') {
71 return readClass(in);
72 }
73
74 // then check for templates
75 if (c == 'T') {
76 return readClass(in);
77 }
78
79 // then check for arrays
80 int dim = countArrayDimension(in);
81 if (dim > 0) {
82 String arrayType = Type.parseFirst(in.substring(dim));
83 return in.substring(0, dim + arrayType.length());
84 }
85
86 throw new IllegalArgumentException("don't know how to parse: " + in);
87 }
88
89 private static String getArrayPrefix(int dimension) {
90 StringBuilder buf = new StringBuilder();
91 for (int i = 0; i < dimension; i++) {
92 buf.append("[");
93 }
94 return buf.toString();
95 }
96
97 private static int countArrayDimension(String in) {
98 int i = 0;
99 while (i < in.length() && in.charAt(i) == '[')
100 i++;
101 return i;
102 }
103
104 private static String readClass(String in) {
105 // read all the characters in the buffer until we hit a ';'
106 // include the parameters too
107 StringBuilder buf = new StringBuilder();
108 int depth = 0;
109 for (int i = 0; i < in.length(); i++) {
110 char c = in.charAt(i);
111 buf.append(c);
112
113 if (c == '<') {
114 depth++;
115 } else if (c == '>') {
116 depth--;
117 } else if (depth == 0 && c == ';') {
118 return buf.toString();
119 }
120 }
121 return null;
122 }
123
124 @Override
125 public String toString() {
126 return this.name;
127 }
128
129 public boolean isVoid() {
130 return this.name.length() == 1 && this.name.charAt(0) == 'V';
131 }
132
133 public boolean isPrimitive() {
134 return this.name.length() == 1 && Primitive.get(this.name.charAt(0)) != null;
135 }
136
137 public Primitive getPrimitive() {
138 if (!isPrimitive()) {
139 throw new IllegalStateException("not a primitive");
140 }
141 return Primitive.get(this.name.charAt(0));
142 }
143
144 public boolean isClass() {
145 return this.name.charAt(0) == 'L' && this.name.charAt(this.name.length() - 1) == ';';
146 }
147
148 public ClassEntry getClassEntry() {
149 if (isClass()) {
150 String name = this.name.substring(1, this.name.length() - 1);
151
152 int pos = name.indexOf('<');
153 if (pos >= 0) {
154 // remove the parameters from the class name
155 name = name.substring(0, pos);
156 }
157
158 return new ClassEntry(name);
159
160 } else if (isArray() && getArrayType().isClass()) {
161 return getArrayType().getClassEntry();
162 } else {
163 throw new IllegalStateException("type doesn't have a class");
164 }
165 }
166
167 public boolean isArray() {
168 return this.name.charAt(0) == '[';
169 }
170
171 public int getArrayDimension() {
172 if (!isArray()) {
173 throw new IllegalStateException("not an array");
174 }
175 return countArrayDimension(this.name);
176 }
177
178 public Type getArrayType() {
179 if (!isArray()) {
180 throw new IllegalStateException("not an array");
181 }
182 return new Type(this.name.substring(getArrayDimension(), this.name.length()));
183 }
184
185 public boolean hasClass() {
186 return isClass() || (isArray() && getArrayType().hasClass());
187 }
188
189 @Override
190 public boolean equals(Object other) {
191 return other instanceof Type && equals((Type) other);
192 }
193
194 public boolean equals(Type other) {
195 return this.name.equals(other.name);
196 }
197
198 public int hashCode() {
199 return this.name.hashCode();
200 }
201
202 public enum Primitive {
203 Byte('B'),
204 Character('C'),
205 Short('S'),
206 Integer('I'),
207 Long('J'),
208 Float('F'),
209 Double('D'),
210 Boolean('Z');
211
212 private static final Map<Character, Primitive> lookup;
213
214 static {
215 lookup = Maps.newTreeMap();
216 for (Primitive val : values()) {
217 lookup.put(val.getCode(), val);
218 }
219 }
220
221 private char code;
222
223 Primitive(char code) {
224 this.code = code;
225 }
226
227 public static Primitive get(char code) {
228 return lookup.get(code);
229 }
230
231 public char getCode() {
232 return this.code;
233 }
234 }
235}
diff --git a/src/main/java/cuchaz/enigma/mapping/TypeDescriptor.java b/src/main/java/cuchaz/enigma/mapping/TypeDescriptor.java
index 9c0fe6d5..58fa6513 100644
--- a/src/main/java/cuchaz/enigma/mapping/TypeDescriptor.java
+++ b/src/main/java/cuchaz/enigma/mapping/TypeDescriptor.java
@@ -12,6 +12,7 @@
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping;
13 13
14import com.google.common.collect.Maps; 14import com.google.common.collect.Maps;
15import cuchaz.enigma.mapping.entry.ClassEntry;
15 16
16import java.util.Map; 17import java.util.Map;
17import java.util.function.Function; 18import java.util.function.Function;
diff --git a/src/main/java/cuchaz/enigma/mapping/ClassDefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/ClassDefEntry.java
index dc1b02e7..75e7f1bd 100644
--- a/src/main/java/cuchaz/enigma/mapping/ClassDefEntry.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/ClassDefEntry.java
@@ -9,7 +9,7 @@
9 * Jeff Martin - initial API and implementation 9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/ 10 ******************************************************************************/
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping.entry;
13 13
14import com.google.common.base.Preconditions; 14import com.google.common.base.Preconditions;
15import cuchaz.enigma.bytecode.AccessFlags; 15import cuchaz.enigma.bytecode.AccessFlags;
diff --git a/src/main/java/cuchaz/enigma/mapping/ClassEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/ClassEntry.java
index a49f8dd5..fc604d82 100644
--- a/src/main/java/cuchaz/enigma/mapping/ClassEntry.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/ClassEntry.java
@@ -9,7 +9,7 @@
9 * Jeff Martin - initial API and implementation 9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/ 10 ******************************************************************************/
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping.entry;
13 13
14import com.google.common.base.Preconditions; 14import com.google.common.base.Preconditions;
15import com.google.common.collect.Lists; 15import com.google.common.collect.Lists;
diff --git a/src/main/java/cuchaz/enigma/mapping/Entry.java b/src/main/java/cuchaz/enigma/mapping/entry/Entry.java
index eb783e96..b612140f 100644
--- a/src/main/java/cuchaz/enigma/mapping/Entry.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/Entry.java
@@ -9,7 +9,7 @@
9 * Jeff Martin - initial API and implementation 9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/ 10 ******************************************************************************/
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping.entry;
13 13
14public interface Entry { 14public interface Entry {
15 String getName(); 15 String getName();
diff --git a/src/main/java/cuchaz/enigma/mapping/EntryFactory.java b/src/main/java/cuchaz/enigma/mapping/entry/EntryFactory.java
index c20f6f5f..5bd159f4 100644
--- a/src/main/java/cuchaz/enigma/mapping/EntryFactory.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/EntryFactory.java
@@ -9,9 +9,13 @@
9 * Jeff Martin - initial API and implementation 9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/ 10 ******************************************************************************/
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping.entry;
13 13
14import cuchaz.enigma.analysis.JarIndex; 14import cuchaz.enigma.analysis.JarIndex;
15import cuchaz.enigma.mapping.ClassMapping;
16import cuchaz.enigma.mapping.FieldMapping;
17import cuchaz.enigma.mapping.MethodDescriptor;
18import cuchaz.enigma.mapping.MethodMapping;
15 19
16public class EntryFactory { 20public class EntryFactory {
17 public static ClassEntry getObfClassEntry(JarIndex jarIndex, ClassMapping classMapping) { 21 public static ClassEntry getObfClassEntry(JarIndex jarIndex, ClassMapping classMapping) {
diff --git a/src/main/java/cuchaz/enigma/mapping/FieldDefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/FieldDefEntry.java
index 262c16c5..78ea5f76 100644
--- a/src/main/java/cuchaz/enigma/mapping/FieldDefEntry.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/FieldDefEntry.java
@@ -9,10 +9,11 @@
9 * Jeff Martin - initial API and implementation 9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/ 10 ******************************************************************************/
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping.entry;
13 13
14import com.google.common.base.Preconditions; 14import com.google.common.base.Preconditions;
15import cuchaz.enigma.bytecode.AccessFlags; 15import cuchaz.enigma.bytecode.AccessFlags;
16import cuchaz.enigma.mapping.TypeDescriptor;
16 17
17public class FieldDefEntry extends FieldEntry { 18public class FieldDefEntry extends FieldEntry {
18 private final AccessFlags access; 19 private final AccessFlags access;
diff --git a/src/main/java/cuchaz/enigma/mapping/FieldEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/FieldEntry.java
index c118ac05..b6e1554d 100644
--- a/src/main/java/cuchaz/enigma/mapping/FieldEntry.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/FieldEntry.java
@@ -9,9 +9,10 @@
9 * Jeff Martin - initial API and implementation 9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/ 10 ******************************************************************************/
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping.entry;
13 13
14import com.google.common.base.Preconditions; 14import com.google.common.base.Preconditions;
15import cuchaz.enigma.mapping.TypeDescriptor;
15import cuchaz.enigma.utils.Utils; 16import cuchaz.enigma.utils.Utils;
16 17
17public class FieldEntry implements Entry { 18public class FieldEntry implements Entry {
diff --git a/src/main/java/cuchaz/enigma/mapping/LocalVariableDefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/LocalVariableDefEntry.java
index cc677c55..0c4f3c17 100644
--- a/src/main/java/cuchaz/enigma/mapping/LocalVariableDefEntry.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/LocalVariableDefEntry.java
@@ -1,6 +1,7 @@
1package cuchaz.enigma.mapping; 1package cuchaz.enigma.mapping.entry;
2 2
3import com.google.common.base.Preconditions; 3import com.google.common.base.Preconditions;
4import cuchaz.enigma.mapping.TypeDescriptor;
4import cuchaz.enigma.utils.Utils; 5import cuchaz.enigma.utils.Utils;
5 6
6/** 7/**
diff --git a/src/main/java/cuchaz/enigma/mapping/LocalVariableEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/LocalVariableEntry.java
index dcfd0ff7..a794d0a0 100644
--- a/src/main/java/cuchaz/enigma/mapping/LocalVariableEntry.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/LocalVariableEntry.java
@@ -1,6 +1,7 @@
1package cuchaz.enigma.mapping; 1package cuchaz.enigma.mapping.entry;
2 2
3import com.google.common.base.Preconditions; 3import com.google.common.base.Preconditions;
4import cuchaz.enigma.mapping.MethodDescriptor;
4import cuchaz.enigma.utils.Utils; 5import cuchaz.enigma.utils.Utils;
5 6
6/** 7/**
diff --git a/src/main/java/cuchaz/enigma/mapping/MethodDefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java
index d6a160d5..1d2c094d 100644
--- a/src/main/java/cuchaz/enigma/mapping/MethodDefEntry.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java
@@ -9,10 +9,11 @@
9 * Jeff Martin - initial API and implementation 9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/ 10 ******************************************************************************/
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping.entry;
13 13
14import com.google.common.base.Preconditions; 14import com.google.common.base.Preconditions;
15import cuchaz.enigma.bytecode.AccessFlags; 15import cuchaz.enigma.bytecode.AccessFlags;
16import cuchaz.enigma.mapping.MethodDescriptor;
16 17
17public class MethodDefEntry extends MethodEntry { 18public class MethodDefEntry extends MethodEntry {
18 19
diff --git a/src/main/java/cuchaz/enigma/mapping/MethodEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/MethodEntry.java
index f8a5ff15..1abc5b12 100644
--- a/src/main/java/cuchaz/enigma/mapping/MethodEntry.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/MethodEntry.java
@@ -9,9 +9,10 @@
9 * Jeff Martin - initial API and implementation 9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/ 10 ******************************************************************************/
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping.entry;
13 13
14import com.google.common.base.Preconditions; 14import com.google.common.base.Preconditions;
15import cuchaz.enigma.mapping.MethodDescriptor;
15import cuchaz.enigma.utils.Utils; 16import cuchaz.enigma.utils.Utils;
16 17
17public class MethodEntry implements Entry { 18public class MethodEntry implements Entry {
diff --git a/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java b/src/main/java/cuchaz/enigma/mapping/entry/ProcyonEntryFactory.java
index 93006564..e42a334e 100644
--- a/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/ProcyonEntryFactory.java
@@ -9,10 +9,12 @@
9 * Jeff Martin - initial API and implementation 9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/ 10 ******************************************************************************/
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping.entry;
13 13
14import com.strobel.assembler.metadata.*; 14import com.strobel.assembler.metadata.*;
15import cuchaz.enigma.bytecode.AccessFlags; 15import cuchaz.enigma.bytecode.AccessFlags;
16import cuchaz.enigma.mapping.MethodDescriptor;
17import cuchaz.enigma.mapping.TypeDescriptor;
16 18
17import java.util.List; 19import java.util.List;
18 20
diff --git a/src/main/java/cuchaz/enigma/mapping/ReferencedEntryPool.java b/src/main/java/cuchaz/enigma/mapping/entry/ReferencedEntryPool.java
index 2abc76c6..338d209e 100644
--- a/src/main/java/cuchaz/enigma/mapping/ReferencedEntryPool.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/ReferencedEntryPool.java
@@ -9,7 +9,10 @@
9 * Jeff Martin - initial API and implementation 9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/ 10 ******************************************************************************/
11 11
12package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping.entry;
13
14import cuchaz.enigma.mapping.MethodDescriptor;
15import cuchaz.enigma.mapping.TypeDescriptor;
13 16
14import java.util.HashMap; 17import java.util.HashMap;
15import java.util.Map; 18import java.util.Map;
diff --git a/src/test/java/cuchaz/enigma/TestDeobfed.java b/src/test/java/cuchaz/enigma/TestDeobfed.java
index fbdebd61..744f954d 100644
--- a/src/test/java/cuchaz/enigma/TestDeobfed.java
+++ b/src/test/java/cuchaz/enigma/TestDeobfed.java
@@ -13,7 +13,7 @@ package cuchaz.enigma;
13 13
14import cuchaz.enigma.analysis.JarIndex; 14import cuchaz.enigma.analysis.JarIndex;
15import cuchaz.enigma.analysis.ParsedJar; 15import cuchaz.enigma.analysis.ParsedJar;
16import cuchaz.enigma.mapping.ReferencedEntryPool; 16import cuchaz.enigma.mapping.entry.ReferencedEntryPool;
17import org.junit.BeforeClass; 17import org.junit.BeforeClass;
18import org.junit.Test; 18import org.junit.Test;
19 19
diff --git a/src/test/java/cuchaz/enigma/TestDeobfuscator.java b/src/test/java/cuchaz/enigma/TestDeobfuscator.java
index 62a52861..63a6f552 100644
--- a/src/test/java/cuchaz/enigma/TestDeobfuscator.java
+++ b/src/test/java/cuchaz/enigma/TestDeobfuscator.java
@@ -12,7 +12,7 @@
12package cuchaz.enigma; 12package cuchaz.enigma;
13 13
14import com.google.common.collect.Lists; 14import com.google.common.collect.Lists;
15import cuchaz.enigma.mapping.ClassEntry; 15import cuchaz.enigma.mapping.entry.ClassEntry;
16import org.junit.Test; 16import org.junit.Test;
17 17
18import java.io.IOException; 18import java.io.IOException;
diff --git a/src/test/java/cuchaz/enigma/TestEntryFactory.java b/src/test/java/cuchaz/enigma/TestEntryFactory.java
index 067dcbfe..4f52609e 100644
--- a/src/test/java/cuchaz/enigma/TestEntryFactory.java
+++ b/src/test/java/cuchaz/enigma/TestEntryFactory.java
@@ -13,6 +13,9 @@ package cuchaz.enigma;
13 13
14import cuchaz.enigma.analysis.EntryReference; 14import cuchaz.enigma.analysis.EntryReference;
15import cuchaz.enigma.mapping.*; 15import cuchaz.enigma.mapping.*;
16import cuchaz.enigma.mapping.entry.ClassEntry;
17import cuchaz.enigma.mapping.entry.FieldEntry;
18import cuchaz.enigma.mapping.entry.MethodEntry;
16 19
17public class TestEntryFactory { 20public class TestEntryFactory {
18 21
diff --git a/src/test/java/cuchaz/enigma/TestInnerClasses.java b/src/test/java/cuchaz/enigma/TestInnerClasses.java
index 30e127e6..f739c11e 100644
--- a/src/test/java/cuchaz/enigma/TestInnerClasses.java
+++ b/src/test/java/cuchaz/enigma/TestInnerClasses.java
@@ -13,8 +13,8 @@ package cuchaz.enigma;
13 13
14import cuchaz.enigma.analysis.JarIndex; 14import cuchaz.enigma.analysis.JarIndex;
15import cuchaz.enigma.analysis.ParsedJar; 15import cuchaz.enigma.analysis.ParsedJar;
16import cuchaz.enigma.mapping.ClassEntry; 16import cuchaz.enigma.mapping.entry.ClassEntry;
17import cuchaz.enigma.mapping.ReferencedEntryPool; 17import cuchaz.enigma.mapping.entry.ReferencedEntryPool;
18import org.junit.Test; 18import org.junit.Test;
19 19
20import java.util.jar.JarFile; 20import java.util.jar.JarFile;
diff --git a/src/test/java/cuchaz/enigma/TestJarIndexConstructorReferences.java b/src/test/java/cuchaz/enigma/TestJarIndexConstructorReferences.java
index b20b27b6..dd275b38 100644
--- a/src/test/java/cuchaz/enigma/TestJarIndexConstructorReferences.java
+++ b/src/test/java/cuchaz/enigma/TestJarIndexConstructorReferences.java
@@ -14,10 +14,10 @@ package cuchaz.enigma;
14import cuchaz.enigma.analysis.EntryReference; 14import cuchaz.enigma.analysis.EntryReference;
15import cuchaz.enigma.analysis.JarIndex; 15import cuchaz.enigma.analysis.JarIndex;
16import cuchaz.enigma.analysis.ParsedJar; 16import cuchaz.enigma.analysis.ParsedJar;
17import cuchaz.enigma.mapping.ClassEntry; 17import cuchaz.enigma.mapping.entry.ClassEntry;
18import cuchaz.enigma.mapping.MethodDefEntry; 18import cuchaz.enigma.mapping.entry.MethodDefEntry;
19import cuchaz.enigma.mapping.MethodEntry; 19import cuchaz.enigma.mapping.entry.MethodEntry;
20import cuchaz.enigma.mapping.ReferencedEntryPool; 20import cuchaz.enigma.mapping.entry.ReferencedEntryPool;
21import org.junit.Test; 21import org.junit.Test;
22 22
23import java.io.File; 23import java.io.File;
diff --git a/src/test/java/cuchaz/enigma/TestJarIndexInheritanceTree.java b/src/test/java/cuchaz/enigma/TestJarIndexInheritanceTree.java
index d1c85964..5bef4e57 100644
--- a/src/test/java/cuchaz/enigma/TestJarIndexInheritanceTree.java
+++ b/src/test/java/cuchaz/enigma/TestJarIndexInheritanceTree.java
@@ -12,7 +12,7 @@
12package cuchaz.enigma; 12package cuchaz.enigma;
13 13
14import cuchaz.enigma.analysis.*; 14import cuchaz.enigma.analysis.*;
15import cuchaz.enigma.mapping.*; 15import cuchaz.enigma.mapping.entry.*;
16import org.junit.Test; 16import org.junit.Test;
17 17
18import java.util.Collection; 18import java.util.Collection;
diff --git a/src/test/java/cuchaz/enigma/TestJarIndexLoneClass.java b/src/test/java/cuchaz/enigma/TestJarIndexLoneClass.java
index d03f3fb4..b1c128c2 100644
--- a/src/test/java/cuchaz/enigma/TestJarIndexLoneClass.java
+++ b/src/test/java/cuchaz/enigma/TestJarIndexLoneClass.java
@@ -13,6 +13,7 @@ package cuchaz.enigma;
13 13
14import cuchaz.enigma.analysis.*; 14import cuchaz.enigma.analysis.*;
15import cuchaz.enigma.mapping.*; 15import cuchaz.enigma.mapping.*;
16import cuchaz.enigma.mapping.entry.*;
16import org.junit.Test; 17import org.junit.Test;
17 18
18import java.util.Collection; 19import java.util.Collection;
diff --git a/src/test/java/cuchaz/enigma/TestSourceIndex.java b/src/test/java/cuchaz/enigma/TestSourceIndex.java
index 6e9e5aec..07542753 100644
--- a/src/test/java/cuchaz/enigma/TestSourceIndex.java
+++ b/src/test/java/cuchaz/enigma/TestSourceIndex.java
@@ -13,7 +13,7 @@ package cuchaz.enigma;
13 13
14import com.google.common.collect.Sets; 14import com.google.common.collect.Sets;
15import com.strobel.decompiler.languages.java.ast.CompilationUnit; 15import com.strobel.decompiler.languages.java.ast.CompilationUnit;
16import cuchaz.enigma.mapping.ClassEntry; 16import cuchaz.enigma.mapping.entry.ClassEntry;
17import org.junit.Test; 17import org.junit.Test;
18 18
19import java.io.File; 19import java.io.File;
diff --git a/src/test/java/cuchaz/enigma/TestTokensConstructors.java b/src/test/java/cuchaz/enigma/TestTokensConstructors.java
index 0148f2c3..0e98da7f 100644
--- a/src/test/java/cuchaz/enigma/TestTokensConstructors.java
+++ b/src/test/java/cuchaz/enigma/TestTokensConstructors.java
@@ -11,7 +11,7 @@
11 11
12package cuchaz.enigma; 12package cuchaz.enigma;
13 13
14import cuchaz.enigma.mapping.MethodEntry; 14import cuchaz.enigma.mapping.entry.MethodEntry;
15import org.junit.Test; 15import org.junit.Test;
16 16
17import java.util.jar.JarFile; 17import java.util.jar.JarFile;
diff --git a/src/test/java/cuchaz/enigma/TestTranslator.java b/src/test/java/cuchaz/enigma/TestTranslator.java
index b63dff86..9b6eb916 100644
--- a/src/test/java/cuchaz/enigma/TestTranslator.java
+++ b/src/test/java/cuchaz/enigma/TestTranslator.java
@@ -11,7 +11,7 @@
11 11
12package cuchaz.enigma; 12package cuchaz.enigma;
13 13
14import cuchaz.enigma.mapping.Entry; 14import cuchaz.enigma.mapping.entry.Entry;
15import cuchaz.enigma.mapping.Mappings; 15import cuchaz.enigma.mapping.Mappings;
16import cuchaz.enigma.mapping.Translator; 16import cuchaz.enigma.mapping.Translator;
17import org.junit.BeforeClass; 17import org.junit.BeforeClass;
diff --git a/src/test/java/cuchaz/enigma/TestType.java b/src/test/java/cuchaz/enigma/TestType.java
deleted file mode 100644
index 43dacb0c..00000000
--- a/src/test/java/cuchaz/enigma/TestType.java
+++ /dev/null
@@ -1,243 +0,0 @@
1/*******************************************************************************
2 * Copyright (c) 2015 Jeff Martin.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the GNU Lesser General Public
5 * License v3.0 which accompanies this distribution, and is available at
6 * http://www.gnu.org/licenses/lgpl.html
7 *
8 * Contributors:
9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/
11
12package cuchaz.enigma;
13
14import cuchaz.enigma.mapping.Type;
15import org.junit.Test;
16
17import static cuchaz.enigma.TestEntryFactory.newClass;
18import static org.hamcrest.MatcherAssert.assertThat;
19import static org.hamcrest.Matchers.is;
20import static org.hamcrest.Matchers.not;
21
22public class TestType {
23
24 @Test
25 public void isVoid() {
26 assertThat(new Type("V").isVoid(), is(true));
27 assertThat(new Type("Z").isVoid(), is(false));
28 assertThat(new Type("B").isVoid(), is(false));
29 assertThat(new Type("C").isVoid(), is(false));
30 assertThat(new Type("I").isVoid(), is(false));
31 assertThat(new Type("J").isVoid(), is(false));
32 assertThat(new Type("F").isVoid(), is(false));
33 assertThat(new Type("D").isVoid(), is(false));
34 assertThat(new Type("LFoo;").isVoid(), is(false));
35 assertThat(new Type("[I").isVoid(), is(false));
36 }
37
38 @Test
39 public void isPrimitive() {
40 assertThat(new Type("V").isPrimitive(), is(false));
41 assertThat(new Type("Z").isPrimitive(), is(true));
42 assertThat(new Type("B").isPrimitive(), is(true));
43 assertThat(new Type("C").isPrimitive(), is(true));
44 assertThat(new Type("I").isPrimitive(), is(true));
45 assertThat(new Type("J").isPrimitive(), is(true));
46 assertThat(new Type("F").isPrimitive(), is(true));
47 assertThat(new Type("D").isPrimitive(), is(true));
48 assertThat(new Type("LFoo;").isPrimitive(), is(false));
49 assertThat(new Type("[I").isPrimitive(), is(false));
50 }
51
52 @Test
53 public void getPrimitive() {
54 assertThat(new Type("Z").getPrimitive(), is(Type.Primitive.Boolean));
55 assertThat(new Type("B").getPrimitive(), is(Type.Primitive.Byte));
56 assertThat(new Type("C").getPrimitive(), is(Type.Primitive.Character));
57 assertThat(new Type("I").getPrimitive(), is(Type.Primitive.Integer));
58 assertThat(new Type("J").getPrimitive(), is(Type.Primitive.Long));
59 assertThat(new Type("F").getPrimitive(), is(Type.Primitive.Float));
60 assertThat(new Type("D").getPrimitive(), is(Type.Primitive.Double));
61 }
62
63 @Test
64 public void isClass() {
65 assertThat(new Type("V").isClass(), is(false));
66 assertThat(new Type("Z").isClass(), is(false));
67 assertThat(new Type("B").isClass(), is(false));
68 assertThat(new Type("C").isClass(), is(false));
69 assertThat(new Type("I").isClass(), is(false));
70 assertThat(new Type("J").isClass(), is(false));
71 assertThat(new Type("F").isClass(), is(false));
72 assertThat(new Type("D").isClass(), is(false));
73 assertThat(new Type("LFoo;").isClass(), is(true));
74 assertThat(new Type("[I").isClass(), is(false));
75 }
76
77 @Test
78 public void getClassEntry() {
79 assertThat(new Type("LFoo;").getClassEntry(), is(newClass("Foo")));
80 assertThat(new Type("Ljava/lang/String;").getClassEntry(), is(newClass("java/lang/String")));
81 }
82
83 @Test
84 public void getArrayClassEntry() {
85 assertThat(new Type("[LFoo;").getClassEntry(), is(newClass("Foo")));
86 assertThat(new Type("[[[Ljava/lang/String;").getClassEntry(), is(newClass("java/lang/String")));
87 }
88
89 @Test
90 public void isArray() {
91 assertThat(new Type("V").isArray(), is(false));
92 assertThat(new Type("Z").isArray(), is(false));
93 assertThat(new Type("B").isArray(), is(false));
94 assertThat(new Type("C").isArray(), is(false));
95 assertThat(new Type("I").isArray(), is(false));
96 assertThat(new Type("J").isArray(), is(false));
97 assertThat(new Type("F").isArray(), is(false));
98 assertThat(new Type("D").isArray(), is(false));
99 assertThat(new Type("LFoo;").isArray(), is(false));
100 assertThat(new Type("[I").isArray(), is(true));
101 }
102
103 @Test
104 public void getArrayDimension() {
105 assertThat(new Type("[I").getArrayDimension(), is(1));
106 assertThat(new Type("[[I").getArrayDimension(), is(2));
107 assertThat(new Type("[[[I").getArrayDimension(), is(3));
108 }
109
110 @Test
111 public void getArrayType() {
112 assertThat(new Type("[I").getArrayType(), is(new Type("I")));
113 assertThat(new Type("[[I").getArrayType(), is(new Type("I")));
114 assertThat(new Type("[[[I").getArrayType(), is(new Type("I")));
115 assertThat(new Type("[Ljava/lang/String;").getArrayType(), is(new Type("Ljava/lang/String;")));
116 }
117
118 @Test
119 public void hasClass() {
120 assertThat(new Type("LFoo;").hasClass(), is(true));
121 assertThat(new Type("Ljava/lang/String;").hasClass(), is(true));
122 assertThat(new Type("[LBar;").hasClass(), is(true));
123 assertThat(new Type("[[[LCat;").hasClass(), is(true));
124
125 assertThat(new Type("V").hasClass(), is(false));
126 assertThat(new Type("[I").hasClass(), is(false));
127 assertThat(new Type("[[[I").hasClass(), is(false));
128 assertThat(new Type("Z").hasClass(), is(false));
129 }
130
131 @Test
132 public void parseVoid() {
133 final String answer = "V";
134 assertThat(Type.parseFirst("V"), is(answer));
135 assertThat(Type.parseFirst("VVV"), is(answer));
136 assertThat(Type.parseFirst("VIJ"), is(answer));
137 assertThat(Type.parseFirst("V[I"), is(answer));
138 assertThat(Type.parseFirst("VLFoo;"), is(answer));
139 assertThat(Type.parseFirst("V[LFoo;"), is(answer));
140 }
141
142 @Test
143 public void parsePrimitive() {
144 final String answer = "I";
145 assertThat(Type.parseFirst("I"), is(answer));
146 assertThat(Type.parseFirst("III"), is(answer));
147 assertThat(Type.parseFirst("IJZ"), is(answer));
148 assertThat(Type.parseFirst("I[I"), is(answer));
149 assertThat(Type.parseFirst("ILFoo;"), is(answer));
150 assertThat(Type.parseFirst("I[LFoo;"), is(answer));
151 }
152
153 @Test
154 public void parseClass() {
155 {
156 final String answer = "LFoo;";
157 assertThat(Type.parseFirst("LFoo;"), is(answer));
158 assertThat(Type.parseFirst("LFoo;I"), is(answer));
159 assertThat(Type.parseFirst("LFoo;JZ"), is(answer));
160 assertThat(Type.parseFirst("LFoo;[I"), is(answer));
161 assertThat(Type.parseFirst("LFoo;LFoo;"), is(answer));
162 assertThat(Type.parseFirst("LFoo;[LFoo;"), is(answer));
163 }
164 {
165 final String answer = "Ljava/lang/String;";
166 assertThat(Type.parseFirst("Ljava/lang/String;"), is(answer));
167 assertThat(Type.parseFirst("Ljava/lang/String;I"), is(answer));
168 assertThat(Type.parseFirst("Ljava/lang/String;JZ"), is(answer));
169 assertThat(Type.parseFirst("Ljava/lang/String;[I"), is(answer));
170 assertThat(Type.parseFirst("Ljava/lang/String;LFoo;"), is(answer));
171 assertThat(Type.parseFirst("Ljava/lang/String;[LFoo;"), is(answer));
172 }
173 }
174
175 @Test
176 public void parseArray() {
177 {
178 final String answer = "[I";
179 assertThat(Type.parseFirst("[I"), is(answer));
180 assertThat(Type.parseFirst("[III"), is(answer));
181 assertThat(Type.parseFirst("[IJZ"), is(answer));
182 assertThat(Type.parseFirst("[I[I"), is(answer));
183 assertThat(Type.parseFirst("[ILFoo;"), is(answer));
184 }
185 {
186 final String answer = "[[I";
187 assertThat(Type.parseFirst("[[I"), is(answer));
188 assertThat(Type.parseFirst("[[III"), is(answer));
189 assertThat(Type.parseFirst("[[IJZ"), is(answer));
190 assertThat(Type.parseFirst("[[I[I"), is(answer));
191 assertThat(Type.parseFirst("[[ILFoo;"), is(answer));
192 }
193 {
194 final String answer = "[LFoo;";
195 assertThat(Type.parseFirst("[LFoo;"), is(answer));
196 assertThat(Type.parseFirst("[LFoo;II"), is(answer));
197 assertThat(Type.parseFirst("[LFoo;JZ"), is(answer));
198 assertThat(Type.parseFirst("[LFoo;[I"), is(answer));
199 assertThat(Type.parseFirst("[LFoo;LFoo;"), is(answer));
200 }
201 }
202
203 @Test
204 public void equals() {
205 assertThat(new Type("V"), is(new Type("V")));
206 assertThat(new Type("Z"), is(new Type("Z")));
207 assertThat(new Type("B"), is(new Type("B")));
208 assertThat(new Type("C"), is(new Type("C")));
209 assertThat(new Type("I"), is(new Type("I")));
210 assertThat(new Type("J"), is(new Type("J")));
211 assertThat(new Type("F"), is(new Type("F")));
212 assertThat(new Type("D"), is(new Type("D")));
213 assertThat(new Type("LFoo;"), is(new Type("LFoo;")));
214 assertThat(new Type("[I"), is(new Type("[I")));
215 assertThat(new Type("[[[I"), is(new Type("[[[I")));
216 assertThat(new Type("[LFoo;"), is(new Type("[LFoo;")));
217
218 assertThat(new Type("V"), is(not(new Type("I"))));
219 assertThat(new Type("I"), is(not(new Type("J"))));
220 assertThat(new Type("I"), is(not(new Type("LBar;"))));
221 assertThat(new Type("I"), is(not(new Type("[I"))));
222 assertThat(new Type("LFoo;"), is(not(new Type("LBar;"))));
223 assertThat(new Type("[I"), is(not(new Type("[Z"))));
224 assertThat(new Type("[[[I"), is(not(new Type("[I"))));
225 assertThat(new Type("[LFoo;"), is(not(new Type("[LBar;"))));
226 }
227
228 @Test
229 public void testToString() {
230 assertThat(new Type("V").toString(), is("V"));
231 assertThat(new Type("Z").toString(), is("Z"));
232 assertThat(new Type("B").toString(), is("B"));
233 assertThat(new Type("C").toString(), is("C"));
234 assertThat(new Type("I").toString(), is("I"));
235 assertThat(new Type("J").toString(), is("J"));
236 assertThat(new Type("F").toString(), is("F"));
237 assertThat(new Type("D").toString(), is("D"));
238 assertThat(new Type("LFoo;").toString(), is("LFoo;"));
239 assertThat(new Type("[I").toString(), is("[I"));
240 assertThat(new Type("[[[I").toString(), is("[[[I"));
241 assertThat(new Type("[LFoo;").toString(), is("[LFoo;"));
242 }
243}
diff --git a/src/test/java/cuchaz/enigma/TokenChecker.java b/src/test/java/cuchaz/enigma/TokenChecker.java
index c6ced488..d863a5ae 100644
--- a/src/test/java/cuchaz/enigma/TokenChecker.java
+++ b/src/test/java/cuchaz/enigma/TokenChecker.java
@@ -16,7 +16,7 @@ import com.strobel.decompiler.languages.java.ast.CompilationUnit;
16import cuchaz.enigma.analysis.EntryReference; 16import cuchaz.enigma.analysis.EntryReference;
17import cuchaz.enigma.analysis.SourceIndex; 17import cuchaz.enigma.analysis.SourceIndex;
18import cuchaz.enigma.analysis.Token; 18import cuchaz.enigma.analysis.Token;
19import cuchaz.enigma.mapping.Entry; 19import cuchaz.enigma.mapping.entry.Entry;
20 20
21import java.io.IOException; 21import java.io.IOException;
22import java.util.Collection; 22import java.util.Collection;