summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/cuchaz/enigma/Enigma.java5
-rw-r--r--src/main/java/cuchaz/enigma/Main.java11
-rw-r--r--src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java18
-rw-r--r--src/main/java/cuchaz/enigma/gui/Gui.java5
-rw-r--r--src/main/java/cuchaz/enigma/gui/GuiController.java12
5 files changed, 23 insertions, 28 deletions
diff --git a/src/main/java/cuchaz/enigma/Enigma.java b/src/main/java/cuchaz/enigma/Enigma.java
index 9f88f77..fd23b47 100644
--- a/src/main/java/cuchaz/enigma/Enigma.java
+++ b/src/main/java/cuchaz/enigma/Enigma.java
@@ -20,6 +20,7 @@ import cuchaz.enigma.api.EnigmaPluginContext;
20import cuchaz.enigma.api.service.EnigmaService; 20import cuchaz.enigma.api.service.EnigmaService;
21import cuchaz.enigma.api.service.EnigmaServiceFactory; 21import cuchaz.enigma.api.service.EnigmaServiceFactory;
22import cuchaz.enigma.api.service.EnigmaServiceType; 22import cuchaz.enigma.api.service.EnigmaServiceType;
23import cuchaz.enigma.api.service.JarIndexerService;
23 24
24import java.io.IOException; 25import java.io.IOException;
25import java.nio.file.Path; 26import java.nio.file.Path;
@@ -46,6 +47,10 @@ public class Enigma {
46 ClassCache classCache = ClassCache.of(path); 47 ClassCache classCache = ClassCache.of(path);
47 JarIndex jarIndex = classCache.index(progress); 48 JarIndex jarIndex = classCache.index(progress);
48 49
50 services.get(JarIndexerService.TYPE).ifPresent(indexer -> {
51 indexer.acceptJar(classCache, jarIndex);
52 });
53
49 return new EnigmaProject(this, classCache, jarIndex); 54 return new EnigmaProject(this, classCache, jarIndex);
50 } 55 }
51 56
diff --git a/src/main/java/cuchaz/enigma/Main.java b/src/main/java/cuchaz/enigma/Main.java
index a642840..1f2cb84 100644
--- a/src/main/java/cuchaz/enigma/Main.java
+++ b/src/main/java/cuchaz/enigma/Main.java
@@ -16,6 +16,7 @@ import cuchaz.enigma.gui.GuiController;
16import cuchaz.enigma.translation.mapping.serde.MappingFormat; 16import cuchaz.enigma.translation.mapping.serde.MappingFormat;
17import joptsimple.*; 17import joptsimple.*;
18 18
19import java.io.BufferedReader;
19import java.io.IOException; 20import java.io.IOException;
20import java.nio.file.Files; 21import java.nio.file.Files;
21import java.nio.file.Path; 22import java.nio.file.Path;
@@ -48,7 +49,15 @@ public class Main {
48 return; 49 return;
49 } 50 }
50 51
51 Gui gui = new Gui(); 52 EnigmaProfile parsedProfile = EnigmaProfile.EMPTY;
53 if (options.has(profile)) {
54 Path profilePath = options.valueOf(profile);
55 try (BufferedReader reader = Files.newBufferedReader(profilePath)) {
56 parsedProfile = EnigmaProfile.parse(reader);
57 }
58 }
59
60 Gui gui = new Gui(parsedProfile);
52 GuiController controller = gui.getController(); 61 GuiController controller = gui.getController();
53 62
54 if (options.has(jar)) { 63 if (options.has(jar)) {
diff --git a/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java b/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java
index c580f09..af0cf30 100644
--- a/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java
+++ b/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java
@@ -1,27 +1,9 @@
1package cuchaz.enigma.api.service; 1package cuchaz.enigma.api.service;
2 2
3import com.google.common.base.Strings;
4import cuchaz.enigma.translation.representation.entry.ClassEntry;
5import cuchaz.enigma.translation.representation.entry.Entry; 3import cuchaz.enigma.translation.representation.entry.Entry;
6 4
7public interface ObfuscationTestService extends EnigmaService { 5public interface ObfuscationTestService extends EnigmaService {
8 EnigmaServiceType<ObfuscationTestService> TYPE = EnigmaServiceType.create("obfuscation_test"); 6 EnigmaServiceType<ObfuscationTestService> TYPE = EnigmaServiceType.create("obfuscation_test");
9 7
10 boolean testDeobfuscated(Entry<?> entry); 8 boolean testDeobfuscated(Entry<?> entry);
11
12 final class Default implements ObfuscationTestService {
13 Default INSTANCE = new Default();
14
15 Default() {
16 }
17
18 @Override
19 public boolean testDeobfuscated(Entry<?> entry) {
20 if (entry instanceof ClassEntry) {
21 String packageName = ((ClassEntry) entry).getPackageName();
22 return Strings.isNullOrEmpty(packageName);
23 }
24 return false;
25 }
26 }
27} 9}
diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java
index 6fc9fcf..5b9a331 100644
--- a/src/main/java/cuchaz/enigma/gui/Gui.java
+++ b/src/main/java/cuchaz/enigma/gui/Gui.java
@@ -13,6 +13,7 @@ package cuchaz.enigma.gui;
13 13
14import com.google.common.collect.Lists; 14import com.google.common.collect.Lists;
15import cuchaz.enigma.Constants; 15import cuchaz.enigma.Constants;
16import cuchaz.enigma.EnigmaProfile;
16import cuchaz.enigma.ExceptionIgnorer; 17import cuchaz.enigma.ExceptionIgnorer;
17import cuchaz.enigma.analysis.*; 18import cuchaz.enigma.analysis.*;
18import cuchaz.enigma.config.Config; 19import cuchaz.enigma.config.Config;
@@ -93,7 +94,7 @@ public class Gui {
93 } 94 }
94 } 95 }
95 96
96 public Gui() { 97 public Gui(EnigmaProfile profile) {
97 Config.getInstance().lookAndFeel.setGlobalLAF(); 98 Config.getInstance().lookAndFeel.setGlobalLAF();
98 99
99 // init frame 100 // init frame
@@ -112,7 +113,7 @@ public class Gui {
112 }); 113 });
113 } 114 }
114 115
115 this.controller = new GuiController(this); 116 this.controller = new GuiController(this, profile);
116 117
117 // init file choosers 118 // init file choosers
118 this.jarFileChooser = new FileDialog(getFrame(), "Open Jar", FileDialog.LOAD); 119 this.jarFileChooser = new FileDialog(getFrame(), "Open Jar", FileDialog.LOAD);
diff --git a/src/main/java/cuchaz/enigma/gui/GuiController.java b/src/main/java/cuchaz/enigma/gui/GuiController.java
index 4410bf3..209b5d1 100644
--- a/src/main/java/cuchaz/enigma/gui/GuiController.java
+++ b/src/main/java/cuchaz/enigma/gui/GuiController.java
@@ -14,10 +14,7 @@ package cuchaz.enigma.gui;
14import com.google.common.collect.Lists; 14import com.google.common.collect.Lists;
15import com.google.common.util.concurrent.ThreadFactoryBuilder; 15import com.google.common.util.concurrent.ThreadFactoryBuilder;
16import com.strobel.decompiler.languages.java.ast.CompilationUnit; 16import com.strobel.decompiler.languages.java.ast.CompilationUnit;
17import cuchaz.enigma.CompiledSourceTypeLoader; 17import cuchaz.enigma.*;
18import cuchaz.enigma.Enigma;
19import cuchaz.enigma.EnigmaProject;
20import cuchaz.enigma.SourceProvider;
21import cuchaz.enigma.analysis.*; 18import cuchaz.enigma.analysis.*;
22import cuchaz.enigma.api.service.ObfuscationTestService; 19import cuchaz.enigma.api.service.ObfuscationTestService;
23import cuchaz.enigma.bytecode.translators.SourceFixVisitor; 20import cuchaz.enigma.bytecode.translators.SourceFixVisitor;
@@ -70,10 +67,11 @@ public class GuiController {
70 67
71 private DecompiledClassSource currentSource; 68 private DecompiledClassSource currentSource;
72 69
73 public GuiController(Gui gui) { 70 public GuiController(Gui gui, EnigmaProfile profile) {
74 this.gui = gui; 71 this.gui = gui;
75 // TODO: load and set profile 72 this.enigma = Enigma.builder()
76 this.enigma = Enigma.create(); 73 .setProfile(profile)
74 .build();
77 } 75 }
78 76
79 public boolean isDirty() { 77 public boolean isDirty() {