summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz
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/main/java/cuchaz
parentInitial port to ASM (diff)
downloadenigma-406b9a89318473571d27de60b8aa1b51f84af245.tar.gz
enigma-406b9a89318473571d27de60b8aa1b51f84af245.tar.xz
enigma-406b9a89318473571d27de60b8aa1b51f84af245.zip
Package updates
Diffstat (limited to 'src/main/java/cuchaz')
-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
58 files changed, 102 insertions, 273 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;