diff options
Diffstat (limited to 'src/main/java/cuchaz/enigma/analysis/BuiltinPlugin.java')
| -rw-r--r-- | src/main/java/cuchaz/enigma/analysis/BuiltinPlugin.java | 14 |
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 @@ | |||
| 1 | package cuchaz.enigma.analysis; | 1 | package cuchaz.enigma.analysis; |
| 2 | 2 | ||
| 3 | import com.strobel.core.Pair; | ||
| 4 | import cuchaz.enigma.api.EnigmaPlugin; | 3 | import cuchaz.enigma.api.EnigmaPlugin; |
| 5 | import cuchaz.enigma.api.EnigmaPluginContext; | 4 | import cuchaz.enigma.api.EnigmaPluginContext; |
| 6 | import cuchaz.enigma.api.service.JarIndexerService; | 5 | import cuchaz.enigma.api.service.JarIndexerService; |
| 7 | import cuchaz.enigma.api.service.NameProposalService; | 6 | import cuchaz.enigma.api.service.NameProposalService; |
| 8 | import cuchaz.enigma.translation.mapping.ResolutionStrategy; | 7 | import cuchaz.enigma.source.DecompilerService; |
| 8 | import cuchaz.enigma.source.Decompilers; | ||
| 9 | import cuchaz.enigma.source.procyon.ProcyonDecompiler; | ||
| 9 | import cuchaz.enigma.translation.representation.TypeDescriptor; | 10 | import cuchaz.enigma.translation.representation.TypeDescriptor; |
| 10 | import cuchaz.enigma.translation.representation.entry.ClassEntry; | 11 | import cuchaz.enigma.translation.representation.entry.ClassEntry; |
| 11 | import cuchaz.enigma.translation.representation.entry.Entry; | 12 | import cuchaz.enigma.translation.representation.entry.Entry; |
| 12 | import cuchaz.enigma.translation.representation.entry.FieldEntry; | 13 | import cuchaz.enigma.translation.representation.entry.FieldEntry; |
| 13 | import cuchaz.enigma.translation.representation.entry.MethodEntry; | 14 | import cuchaz.enigma.utils.Pair; |
| 14 | import org.objectweb.asm.ClassReader; | 15 | import org.objectweb.asm.ClassReader; |
| 15 | import org.objectweb.asm.ClassVisitor; | 16 | import org.objectweb.asm.ClassVisitor; |
| 16 | import org.objectweb.asm.FieldVisitor; | 17 | import org.objectweb.asm.FieldVisitor; |
| @@ -34,7 +35,6 @@ import java.util.List; | |||
| 34 | import java.util.Map; | 35 | import java.util.Map; |
| 35 | import java.util.Optional; | 36 | import java.util.Optional; |
| 36 | import java.util.Set; | 37 | import java.util.Set; |
| 37 | import java.util.function.UnaryOperator; | ||
| 38 | 38 | ||
| 39 | public final class BuiltinPlugin implements EnigmaPlugin { | 39 | public 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; |