summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/analysis/BuiltinPlugin.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/analysis/BuiltinPlugin.java')
-rw-r--r--src/main/java/cuchaz/enigma/analysis/BuiltinPlugin.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/main/java/cuchaz/enigma/analysis/BuiltinPlugin.java b/src/main/java/cuchaz/enigma/analysis/BuiltinPlugin.java
index 12ef709..fddd9a8 100644
--- a/src/main/java/cuchaz/enigma/analysis/BuiltinPlugin.java
+++ b/src/main/java/cuchaz/enigma/analysis/BuiltinPlugin.java
@@ -1,16 +1,17 @@
1package cuchaz.enigma.analysis; 1package cuchaz.enigma.analysis;
2 2
3import com.strobel.core.Pair;
4import cuchaz.enigma.api.EnigmaPlugin; 3import cuchaz.enigma.api.EnigmaPlugin;
5import cuchaz.enigma.api.EnigmaPluginContext; 4import cuchaz.enigma.api.EnigmaPluginContext;
6import cuchaz.enigma.api.service.JarIndexerService; 5import cuchaz.enigma.api.service.JarIndexerService;
7import cuchaz.enigma.api.service.NameProposalService; 6import cuchaz.enigma.api.service.NameProposalService;
8import cuchaz.enigma.translation.mapping.ResolutionStrategy; 7import cuchaz.enigma.source.DecompilerService;
8import cuchaz.enigma.source.Decompilers;
9import cuchaz.enigma.source.procyon.ProcyonDecompiler;
9import cuchaz.enigma.translation.representation.TypeDescriptor; 10import cuchaz.enigma.translation.representation.TypeDescriptor;
10import cuchaz.enigma.translation.representation.entry.ClassEntry; 11import cuchaz.enigma.translation.representation.entry.ClassEntry;
11import cuchaz.enigma.translation.representation.entry.Entry; 12import cuchaz.enigma.translation.representation.entry.Entry;
12import cuchaz.enigma.translation.representation.entry.FieldEntry; 13import cuchaz.enigma.translation.representation.entry.FieldEntry;
13import cuchaz.enigma.translation.representation.entry.MethodEntry; 14import cuchaz.enigma.utils.Pair;
14import org.objectweb.asm.ClassReader; 15import org.objectweb.asm.ClassReader;
15import org.objectweb.asm.ClassVisitor; 16import org.objectweb.asm.ClassVisitor;
16import org.objectweb.asm.FieldVisitor; 17import org.objectweb.asm.FieldVisitor;
@@ -34,7 +35,6 @@ import java.util.List;
34import java.util.Map; 35import java.util.Map;
35import java.util.Optional; 36import java.util.Optional;
36import java.util.Set; 37import java.util.Set;
37import java.util.function.UnaryOperator;
38 38
39public final class BuiltinPlugin implements EnigmaPlugin { 39public final class BuiltinPlugin implements EnigmaPlugin {
40 40
@@ -44,6 +44,7 @@ public final class BuiltinPlugin implements EnigmaPlugin {
44 @Override 44 @Override
45 public void init(EnigmaPluginContext ctx) { 45 public void init(EnigmaPluginContext ctx) {
46 registerEnumNamingService(ctx); 46 registerEnumNamingService(ctx);
47 registerDecompilerServices(ctx);
47 } 48 }
48 49
49 private void registerEnumNamingService(EnigmaPluginContext ctx) { 50 private void registerEnumNamingService(EnigmaPluginContext ctx) {
@@ -54,6 +55,11 @@ public final class BuiltinPlugin implements EnigmaPlugin {
54 ctx.registerService("enigma:enum_name_proposer", NameProposalService.TYPE, ctx1 -> (obfEntry, remapper) -> Optional.ofNullable(names.get(obfEntry))); 55 ctx.registerService("enigma:enum_name_proposer", NameProposalService.TYPE, ctx1 -> (obfEntry, remapper) -> Optional.ofNullable(names.get(obfEntry)));
55 } 56 }
56 57
58 private void registerDecompilerServices(EnigmaPluginContext ctx) {
59 ctx.registerService("enigma:procyon", DecompilerService.TYPE, ctx1 -> Decompilers.PROCYON);
60 ctx.registerService("enigma:cfr", DecompilerService.TYPE, ctx1 -> Decompilers.CFR);
61 }
62
57 private static final class EnumFieldNameFindingVisitor extends ClassVisitor { 63 private static final class EnumFieldNameFindingVisitor extends ClassVisitor {
58 64
59 private ClassEntry clazz; 65 private ClassEntry clazz;