From 57af19a99b2c7358d78f102b91482b2073126881 Mon Sep 17 00:00:00 2001 From: 2xsaiko Date: Mon, 6 Jul 2020 18:48:36 +0200 Subject: Add menu entry to reload jar & mappings from disk (#263) * Add button to reload jar & mappings from disk * Disable menu entry when currently loading * Add menu entry that reloads mappings only * Remove duplicate user query code --- enigma/src/main/java/cuchaz/enigma/Enigma.java | 17 ++++---- .../src/main/java/cuchaz/enigma/EnigmaProject.java | 45 +++++++++++++--------- 2 files changed, 35 insertions(+), 27 deletions(-) (limited to 'enigma/src/main/java') diff --git a/enigma/src/main/java/cuchaz/enigma/Enigma.java b/enigma/src/main/java/cuchaz/enigma/Enigma.java index 2e9be34..d100a75 100644 --- a/enigma/src/main/java/cuchaz/enigma/Enigma.java +++ b/enigma/src/main/java/cuchaz/enigma/Enigma.java @@ -11,8 +11,16 @@ package cuchaz.enigma; +import java.io.IOException; +import java.nio.file.Path; +import java.util.List; +import java.util.ServiceLoader; +import java.util.Set; + import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableListMultimap; +import org.objectweb.asm.Opcodes; + import cuchaz.enigma.analysis.index.JarIndex; import cuchaz.enigma.api.EnigmaPlugin; import cuchaz.enigma.api.EnigmaPluginContext; @@ -25,13 +33,6 @@ import cuchaz.enigma.classprovider.ClassProvider; import cuchaz.enigma.classprovider.CombiningClassProvider; import cuchaz.enigma.classprovider.JarClassProvider; import cuchaz.enigma.utils.Utils; -import org.objectweb.asm.Opcodes; - -import java.io.IOException; -import java.nio.file.Path; -import java.util.List; -import java.util.ServiceLoader; -import java.util.Set; public class Enigma { public static final String NAME = "Enigma"; @@ -64,7 +65,7 @@ public class Enigma { index.indexJar(scope, classProvider, progress); services.get(JarIndexerService.TYPE).forEach(indexer -> indexer.acceptJar(scope, classProvider, index)); - return new EnigmaProject(this, classProvider, index, Utils.zipSha1(path)); + return new EnigmaProject(this, path, classProvider, index, Utils.zipSha1(path)); } public EnigmaProfile getProfile() { diff --git a/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java b/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java index 76413ab..2abd39c 100644 --- a/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java +++ b/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java @@ -1,7 +1,26 @@ package cuchaz.enigma; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.jar.JarEntry; +import java.util.jar.JarOutputStream; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import com.google.common.base.Functions; import com.google.common.base.Preconditions; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.tree.ClassNode; + import cuchaz.enigma.analysis.EntryReference; import cuchaz.enigma.analysis.index.JarIndex; import cuchaz.enigma.api.service.NameProposalService; @@ -23,37 +42,21 @@ import cuchaz.enigma.translation.representation.entry.Entry; import cuchaz.enigma.translation.representation.entry.LocalVariableEntry; import cuchaz.enigma.translation.representation.entry.MethodEntry; import cuchaz.enigma.utils.I18n; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.tree.ClassNode; - -import java.io.BufferedWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.jar.JarEntry; -import java.util.jar.JarOutputStream; -import java.util.stream.Collectors; -import java.util.stream.Stream; public class EnigmaProject { private final Enigma enigma; + private final Path jarPath; private final ClassProvider classProvider; private final JarIndex jarIndex; private final byte[] jarChecksum; private EntryRemapper mapper; - public EnigmaProject(Enigma enigma, ClassProvider classProvider, JarIndex jarIndex, byte[] jarChecksum) { + public EnigmaProject(Enigma enigma, Path jarPath, ClassProvider classProvider, JarIndex jarIndex, byte[] jarChecksum) { Preconditions.checkArgument(jarChecksum.length == 20); this.enigma = enigma; + this.jarPath = jarPath; this.classProvider = classProvider; this.jarIndex = jarIndex; this.jarChecksum = jarChecksum; @@ -73,6 +76,10 @@ public class EnigmaProject { return enigma; } + public Path getJarPath() { + return jarPath; + } + public ClassProvider getClassProvider() { return classProvider; } -- cgit v1.2.3