diff options
Diffstat (limited to 'src/main/java/cuchaz/enigma/api')
| -rw-r--r-- | src/main/java/cuchaz/enigma/api/EnigmaPlugin.java | 5 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/api/EnigmaPluginContext.java | 9 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/api/JarProcessor.java | 8 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/api/service/EnigmaService.java | 4 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/api/service/EnigmaServiceContext.java | 11 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/api/service/EnigmaServiceFactory.java | 5 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/api/service/EnigmaServiceType.java | 29 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/api/service/JarIndexerService.java | 10 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/api/service/NameProposalService.java (renamed from src/main/java/cuchaz/enigma/api/EntryNameProposer.java) | 6 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java | 9 |
10 files changed, 86 insertions, 10 deletions
diff --git a/src/main/java/cuchaz/enigma/api/EnigmaPlugin.java b/src/main/java/cuchaz/enigma/api/EnigmaPlugin.java new file mode 100644 index 0000000..bdd6015 --- /dev/null +++ b/src/main/java/cuchaz/enigma/api/EnigmaPlugin.java | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | package cuchaz.enigma.api; | ||
| 2 | |||
| 3 | public interface EnigmaPlugin { | ||
| 4 | void init(EnigmaPluginContext ctx); | ||
| 5 | } | ||
diff --git a/src/main/java/cuchaz/enigma/api/EnigmaPluginContext.java b/src/main/java/cuchaz/enigma/api/EnigmaPluginContext.java new file mode 100644 index 0000000..a59051a --- /dev/null +++ b/src/main/java/cuchaz/enigma/api/EnigmaPluginContext.java | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | package cuchaz.enigma.api; | ||
| 2 | |||
| 3 | import cuchaz.enigma.api.service.EnigmaService; | ||
| 4 | import cuchaz.enigma.api.service.EnigmaServiceFactory; | ||
| 5 | import cuchaz.enigma.api.service.EnigmaServiceType; | ||
| 6 | |||
| 7 | public interface EnigmaPluginContext { | ||
| 8 | <T extends EnigmaService> void registerService(String id, EnigmaServiceType<T> serviceType, EnigmaServiceFactory<T> factory); | ||
| 9 | } | ||
diff --git a/src/main/java/cuchaz/enigma/api/JarProcessor.java b/src/main/java/cuchaz/enigma/api/JarProcessor.java deleted file mode 100644 index 965b0c4..0000000 --- a/src/main/java/cuchaz/enigma/api/JarProcessor.java +++ /dev/null | |||
| @@ -1,8 +0,0 @@ | |||
| 1 | package cuchaz.enigma.api; | ||
| 2 | |||
| 3 | import cuchaz.enigma.analysis.ParsedJar; | ||
| 4 | import cuchaz.enigma.analysis.index.JarIndex; | ||
| 5 | |||
| 6 | public interface JarProcessor { | ||
| 7 | void accept(ParsedJar jar, JarIndex index); | ||
| 8 | } | ||
diff --git a/src/main/java/cuchaz/enigma/api/service/EnigmaService.java b/src/main/java/cuchaz/enigma/api/service/EnigmaService.java new file mode 100644 index 0000000..526dda7 --- /dev/null +++ b/src/main/java/cuchaz/enigma/api/service/EnigmaService.java | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | package cuchaz.enigma.api.service; | ||
| 2 | |||
| 3 | public interface EnigmaService { | ||
| 4 | } | ||
diff --git a/src/main/java/cuchaz/enigma/api/service/EnigmaServiceContext.java b/src/main/java/cuchaz/enigma/api/service/EnigmaServiceContext.java new file mode 100644 index 0000000..9e433fb --- /dev/null +++ b/src/main/java/cuchaz/enigma/api/service/EnigmaServiceContext.java | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | package cuchaz.enigma.api.service; | ||
| 2 | |||
| 3 | import java.util.Optional; | ||
| 4 | |||
| 5 | public interface EnigmaServiceContext<T extends EnigmaService> { | ||
| 6 | static <T extends EnigmaService> EnigmaServiceContext<T> empty() { | ||
| 7 | return key -> Optional.empty(); | ||
| 8 | } | ||
| 9 | |||
| 10 | Optional<String> getArgument(String key); | ||
| 11 | } | ||
diff --git a/src/main/java/cuchaz/enigma/api/service/EnigmaServiceFactory.java b/src/main/java/cuchaz/enigma/api/service/EnigmaServiceFactory.java new file mode 100644 index 0000000..7c10ac2 --- /dev/null +++ b/src/main/java/cuchaz/enigma/api/service/EnigmaServiceFactory.java | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | package cuchaz.enigma.api.service; | ||
| 2 | |||
| 3 | public interface EnigmaServiceFactory<T extends EnigmaService> { | ||
| 4 | T create(EnigmaServiceContext<T> ctx); | ||
| 5 | } | ||
diff --git a/src/main/java/cuchaz/enigma/api/service/EnigmaServiceType.java b/src/main/java/cuchaz/enigma/api/service/EnigmaServiceType.java new file mode 100644 index 0000000..358828f --- /dev/null +++ b/src/main/java/cuchaz/enigma/api/service/EnigmaServiceType.java | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | package cuchaz.enigma.api.service; | ||
| 2 | |||
| 3 | public final class EnigmaServiceType<T extends EnigmaService> { | ||
| 4 | public final String key; | ||
| 5 | |||
| 6 | private EnigmaServiceType(String key) { | ||
| 7 | this.key = key; | ||
| 8 | } | ||
| 9 | |||
| 10 | public static <T extends EnigmaService> EnigmaServiceType<T> create(String key) { | ||
| 11 | return new EnigmaServiceType<>(key); | ||
| 12 | } | ||
| 13 | |||
| 14 | @Override | ||
| 15 | public int hashCode() { | ||
| 16 | return key.hashCode(); | ||
| 17 | } | ||
| 18 | |||
| 19 | @Override | ||
| 20 | public boolean equals(Object obj) { | ||
| 21 | if (obj == this) return true; | ||
| 22 | |||
| 23 | if (obj instanceof EnigmaServiceType) { | ||
| 24 | return ((EnigmaServiceType) obj).key.equals(key); | ||
| 25 | } | ||
| 26 | |||
| 27 | return false; | ||
| 28 | } | ||
| 29 | } | ||
diff --git a/src/main/java/cuchaz/enigma/api/service/JarIndexerService.java b/src/main/java/cuchaz/enigma/api/service/JarIndexerService.java new file mode 100644 index 0000000..0cda199 --- /dev/null +++ b/src/main/java/cuchaz/enigma/api/service/JarIndexerService.java | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | package cuchaz.enigma.api.service; | ||
| 2 | |||
| 3 | import cuchaz.enigma.analysis.ClassCache; | ||
| 4 | import cuchaz.enigma.analysis.index.JarIndex; | ||
| 5 | |||
| 6 | public interface JarIndexerService extends EnigmaService { | ||
| 7 | EnigmaServiceType<JarIndexerService> TYPE = EnigmaServiceType.create("jar_indexer"); | ||
| 8 | |||
| 9 | void acceptJar(ClassCache classCache, JarIndex jarIndex); | ||
| 10 | } | ||
diff --git a/src/main/java/cuchaz/enigma/api/EntryNameProposer.java b/src/main/java/cuchaz/enigma/api/service/NameProposalService.java index 3fc26d2..4c357db 100644 --- a/src/main/java/cuchaz/enigma/api/EntryNameProposer.java +++ b/src/main/java/cuchaz/enigma/api/service/NameProposalService.java | |||
| @@ -1,10 +1,12 @@ | |||
| 1 | package cuchaz.enigma.api; | 1 | package cuchaz.enigma.api.service; |
| 2 | 2 | ||
| 3 | import cuchaz.enigma.translation.mapping.EntryRemapper; | 3 | import cuchaz.enigma.translation.mapping.EntryRemapper; |
| 4 | import cuchaz.enigma.translation.representation.entry.Entry; | 4 | import cuchaz.enigma.translation.representation.entry.Entry; |
| 5 | 5 | ||
| 6 | import java.util.Optional; | 6 | import java.util.Optional; |
| 7 | 7 | ||
| 8 | public interface EntryNameProposer { | 8 | public interface NameProposalService extends EnigmaService { |
| 9 | EnigmaServiceType<NameProposalService> TYPE = EnigmaServiceType.create("name_proposal"); | ||
| 10 | |||
| 9 | Optional<String> proposeName(Entry<?> obfEntry, EntryRemapper remapper); | 11 | Optional<String> proposeName(Entry<?> obfEntry, EntryRemapper remapper); |
| 10 | } | 12 | } |
diff --git a/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java b/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java new file mode 100644 index 0000000..af0cf30 --- /dev/null +++ b/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | package cuchaz.enigma.api.service; | ||
| 2 | |||
| 3 | import cuchaz.enigma.translation.representation.entry.Entry; | ||
| 4 | |||
| 5 | public interface ObfuscationTestService extends EnigmaService { | ||
| 6 | EnigmaServiceType<ObfuscationTestService> TYPE = EnigmaServiceType.create("obfuscation_test"); | ||
| 7 | |||
| 8 | boolean testDeobfuscated(Entry<?> entry); | ||
| 9 | } | ||