From e1b780ae6d60bd6a9635f6f1197dc26d2b31e3a8 Mon Sep 17 00:00:00 2001 From: gegy1000 Date: Fri, 28 Jun 2019 23:13:43 +0200 Subject: Profile option for mappings to be saved by-obf instead of by-deobf --- src/main/java/cuchaz/enigma/EnigmaProfile.java | 9 +++++++ .../enigma/command/CheckMappingsCommand.java | 5 +++- src/main/java/cuchaz/enigma/command/Command.java | 6 ++++- .../enigma/command/ComposeMappingsCommand.java | 10 +++++--- .../enigma/command/ConvertMappingsCommand.java | 8 +++++-- .../enigma/command/InvertMappingsCommand.java | 8 +++++-- .../cuchaz/enigma/command/MappingCommandsUtil.java | 17 ++++++------- src/main/java/cuchaz/enigma/gui/GuiController.java | 9 ++++--- .../translation/mapping/MappingFileNameFormat.java | 10 ++++++++ .../translation/mapping/MappingSaveParameters.java | 16 +++++++++++++ .../mapping/serde/EnigmaMappingsReader.java | 5 ++-- .../mapping/serde/EnigmaMappingsWriter.java | 28 +++++++++++++++------- .../translation/mapping/serde/MappingFormat.java | 13 +++++----- .../translation/mapping/serde/MappingsReader.java | 3 ++- .../translation/mapping/serde/MappingsWriter.java | 7 +++--- .../mapping/serde/SrgMappingsWriter.java | 3 ++- .../mapping/serde/TinyMappingsReader.java | 3 ++- .../mapping/serde/TinyMappingsWriter.java | 3 ++- 18 files changed, 119 insertions(+), 44 deletions(-) create mode 100644 src/main/java/cuchaz/enigma/translation/mapping/MappingFileNameFormat.java create mode 100644 src/main/java/cuchaz/enigma/translation/mapping/MappingSaveParameters.java (limited to 'src/main/java/cuchaz') diff --git a/src/main/java/cuchaz/enigma/EnigmaProfile.java b/src/main/java/cuchaz/enigma/EnigmaProfile.java index feb5fdb..a5904ee 100644 --- a/src/main/java/cuchaz/enigma/EnigmaProfile.java +++ b/src/main/java/cuchaz/enigma/EnigmaProfile.java @@ -4,6 +4,8 @@ import com.google.common.collect.ImmutableMap; import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; import cuchaz.enigma.api.service.EnigmaServiceType; +import cuchaz.enigma.translation.mapping.MappingFileNameFormat; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import javax.annotation.Nullable; import java.io.Reader; @@ -18,6 +20,9 @@ public final class EnigmaProfile { @SerializedName("services") private final Map serviceProfiles; + @SerializedName("mapping_save_parameters") + private final MappingSaveParameters mappingSaveParameters = new MappingSaveParameters(MappingFileNameFormat.BY_DEOBF); + private EnigmaProfile(Map serviceProfiles) { this.serviceProfiles = serviceProfiles; } @@ -31,6 +36,10 @@ public final class EnigmaProfile { return serviceProfiles.get(serviceType.key); } + public MappingSaveParameters getMappingSaveParameters() { + return mappingSaveParameters; + } + public static class Service { private final String id; private final Map args; diff --git a/src/main/java/cuchaz/enigma/command/CheckMappingsCommand.java b/src/main/java/cuchaz/enigma/command/CheckMappingsCommand.java index 08e73e6..9d238e3 100644 --- a/src/main/java/cuchaz/enigma/command/CheckMappingsCommand.java +++ b/src/main/java/cuchaz/enigma/command/CheckMappingsCommand.java @@ -5,6 +5,7 @@ import cuchaz.enigma.EnigmaProject; import cuchaz.enigma.ProgressListener; import cuchaz.enigma.analysis.index.JarIndex; import cuchaz.enigma.translation.mapping.EntryMapping; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import cuchaz.enigma.translation.mapping.serde.MappingFormat; import cuchaz.enigma.translation.mapping.tree.EntryTree; import cuchaz.enigma.translation.representation.entry.ClassEntry; @@ -43,7 +44,9 @@ public class CheckMappingsCommand extends Command { System.out.println("Reading mappings..."); MappingFormat format = chooseEnigmaFormat(fileMappings); - EntryTree mappings = format.read(fileMappings, ProgressListener.none()); + MappingSaveParameters saveParameters = enigma.getProfile().getMappingSaveParameters(); + + EntryTree mappings = format.read(fileMappings, ProgressListener.none(), saveParameters); project.setMappings(mappings); JarIndex idx = project.getJarIndex(); diff --git a/src/main/java/cuchaz/enigma/command/Command.java b/src/main/java/cuchaz/enigma/command/Command.java index 41d7bfa..d53ed6e 100644 --- a/src/main/java/cuchaz/enigma/command/Command.java +++ b/src/main/java/cuchaz/enigma/command/Command.java @@ -4,6 +4,7 @@ import cuchaz.enigma.Enigma; import cuchaz.enigma.EnigmaProject; import cuchaz.enigma.ProgressListener; import cuchaz.enigma.translation.mapping.EntryMapping; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import cuchaz.enigma.translation.mapping.serde.MappingFormat; import cuchaz.enigma.translation.mapping.tree.EntryTree; @@ -35,7 +36,10 @@ public abstract class Command { if (fileMappings != null) { System.out.println("Reading mappings..."); - EntryTree mappings = chooseEnigmaFormat(fileMappings).read(fileMappings, progress); + + MappingSaveParameters saveParameters = enigma.getProfile().getMappingSaveParameters(); + EntryTree mappings = chooseEnigmaFormat(fileMappings).read(fileMappings, progress, saveParameters); + project.setMappings(mappings); } diff --git a/src/main/java/cuchaz/enigma/command/ComposeMappingsCommand.java b/src/main/java/cuchaz/enigma/command/ComposeMappingsCommand.java index 1f6a069..f57f1fa 100644 --- a/src/main/java/cuchaz/enigma/command/ComposeMappingsCommand.java +++ b/src/main/java/cuchaz/enigma/command/ComposeMappingsCommand.java @@ -2,6 +2,8 @@ package cuchaz.enigma.command; import cuchaz.enigma.throwables.MappingParseException; import cuchaz.enigma.translation.mapping.EntryMapping; +import cuchaz.enigma.translation.mapping.MappingFileNameFormat; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import cuchaz.enigma.translation.mapping.tree.EntryTree; import cuchaz.enigma.utils.Utils; @@ -26,12 +28,14 @@ public class ComposeMappingsCommand extends Command { @Override public void run(String... args) throws IOException, MappingParseException { - EntryTree left = MappingCommandsUtil.read(args[0], Paths.get(args[1])); - EntryTree right = MappingCommandsUtil.read(args[2], Paths.get(args[3])); + MappingSaveParameters saveParameters = new MappingSaveParameters(MappingFileNameFormat.BY_DEOBF); + + EntryTree left = MappingCommandsUtil.read(args[0], Paths.get(args[1]), saveParameters); + EntryTree right = MappingCommandsUtil.read(args[2], Paths.get(args[3]), saveParameters); EntryTree result = MappingCommandsUtil.compose(left, right, args[6].equals("left") || args[6].equals("both"), args[6].equals("right") || args[6].equals("both")); Path output = Paths.get(args[5]); Utils.delete(output); - MappingCommandsUtil.write(result, args[4], output); + MappingCommandsUtil.write(result, args[4], output, saveParameters); } } diff --git a/src/main/java/cuchaz/enigma/command/ConvertMappingsCommand.java b/src/main/java/cuchaz/enigma/command/ConvertMappingsCommand.java index 775bd3e..689df02 100644 --- a/src/main/java/cuchaz/enigma/command/ConvertMappingsCommand.java +++ b/src/main/java/cuchaz/enigma/command/ConvertMappingsCommand.java @@ -2,6 +2,8 @@ package cuchaz.enigma.command; import cuchaz.enigma.throwables.MappingParseException; import cuchaz.enigma.translation.mapping.EntryMapping; +import cuchaz.enigma.translation.mapping.MappingFileNameFormat; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import cuchaz.enigma.translation.mapping.tree.EntryTree; import cuchaz.enigma.utils.Utils; @@ -26,10 +28,12 @@ public class ConvertMappingsCommand extends Command { @Override public void run(String... args) throws IOException, MappingParseException { - EntryTree mappings = MappingCommandsUtil.read(args[0], Paths.get(args[1])); + MappingSaveParameters saveParameters = new MappingSaveParameters(MappingFileNameFormat.BY_DEOBF); + + EntryTree mappings = MappingCommandsUtil.read(args[0], Paths.get(args[1]), saveParameters); Path output = Paths.get(args[3]); Utils.delete(output); - MappingCommandsUtil.write(mappings, args[2], output); + MappingCommandsUtil.write(mappings, args[2], output, saveParameters); } } diff --git a/src/main/java/cuchaz/enigma/command/InvertMappingsCommand.java b/src/main/java/cuchaz/enigma/command/InvertMappingsCommand.java index bfe8308..cd11e2e 100644 --- a/src/main/java/cuchaz/enigma/command/InvertMappingsCommand.java +++ b/src/main/java/cuchaz/enigma/command/InvertMappingsCommand.java @@ -2,6 +2,8 @@ package cuchaz.enigma.command; import cuchaz.enigma.throwables.MappingParseException; import cuchaz.enigma.translation.mapping.EntryMapping; +import cuchaz.enigma.translation.mapping.MappingFileNameFormat; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import cuchaz.enigma.translation.mapping.tree.EntryTree; import cuchaz.enigma.utils.Utils; @@ -26,11 +28,13 @@ public class InvertMappingsCommand extends Command { @Override public void run(String... args) throws IOException, MappingParseException { - EntryTree source = MappingCommandsUtil.read(args[0], Paths.get(args[1])); + MappingSaveParameters saveParameters = new MappingSaveParameters(MappingFileNameFormat.BY_DEOBF); + + EntryTree source = MappingCommandsUtil.read(args[0], Paths.get(args[1]), saveParameters); EntryTree result = MappingCommandsUtil.invert(source); Path output = Paths.get(args[3]); Utils.delete(output); - MappingCommandsUtil.write(result, args[2], output); + MappingCommandsUtil.write(result, args[2], output, saveParameters); } } diff --git a/src/main/java/cuchaz/enigma/command/MappingCommandsUtil.java b/src/main/java/cuchaz/enigma/command/MappingCommandsUtil.java index 03d9ab7..8384e4e 100644 --- a/src/main/java/cuchaz/enigma/command/MappingCommandsUtil.java +++ b/src/main/java/cuchaz/enigma/command/MappingCommandsUtil.java @@ -5,6 +5,7 @@ import cuchaz.enigma.throwables.MappingParseException; import cuchaz.enigma.translation.MappingTranslator; import cuchaz.enigma.translation.Translator; import cuchaz.enigma.translation.mapping.EntryMapping; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import cuchaz.enigma.translation.mapping.VoidEntryResolver; import cuchaz.enigma.translation.mapping.serde.*; import cuchaz.enigma.translation.mapping.tree.EntryTree; @@ -91,13 +92,13 @@ public final class MappingCommandsUtil { return result; } - public static EntryTree read(String type, Path path) throws MappingParseException, IOException { + public static EntryTree read(String type, Path path, MappingSaveParameters saveParameters) throws MappingParseException, IOException { if (type.equals("enigma")) { - return EnigmaMappingsReader.DIRECTORY.read(path, ProgressListener.none()); + return EnigmaMappingsReader.DIRECTORY.read(path, ProgressListener.none(), saveParameters); } if (type.equals("tiny")) { - return TinyMappingsReader.INSTANCE.read(path, ProgressListener.none()); + return TinyMappingsReader.INSTANCE.read(path, ProgressListener.none(), saveParameters); } MappingFormat format = null; @@ -106,15 +107,15 @@ public final class MappingCommandsUtil { } catch (IllegalArgumentException ignored) {} if (format != null) { - return format.getReader().read(path, ProgressListener.none()); + return format.getReader().read(path, ProgressListener.none(), saveParameters); } throw new IllegalArgumentException("no reader for " + type); } - public static void write(EntryTree mappings, String type, Path path) { + public static void write(EntryTree mappings, String type, Path path, MappingSaveParameters saveParameters) { if (type.equals("enigma")) { - EnigmaMappingsWriter.DIRECTORY.write(mappings, path, ProgressListener.none()); + EnigmaMappingsWriter.DIRECTORY.write(mappings, path, ProgressListener.none(), saveParameters); return; } @@ -125,7 +126,7 @@ public final class MappingCommandsUtil { throw new IllegalArgumentException("specify column names as 'tiny:from_column:to_column'"); } - new TinyMappingsWriter(split[1], split[2]).write(mappings, path, ProgressListener.none()); + new TinyMappingsWriter(split[1], split[2]).write(mappings, path, ProgressListener.none(), saveParameters); return; } @@ -135,7 +136,7 @@ public final class MappingCommandsUtil { } catch (IllegalArgumentException ignored) {} if (format != null) { - format.getWriter().write(mappings, path, ProgressListener.none()); + format.getWriter().write(mappings, path, ProgressListener.none(), saveParameters); return; } diff --git a/src/main/java/cuchaz/enigma/gui/GuiController.java b/src/main/java/cuchaz/enigma/gui/GuiController.java index 092a07e..89fbd10 100644 --- a/src/main/java/cuchaz/enigma/gui/GuiController.java +++ b/src/main/java/cuchaz/enigma/gui/GuiController.java @@ -109,7 +109,9 @@ public class GuiController { return ProgressDialog.runOffThread(gui.getFrame(), progress -> { try { - EntryTree mappings = format.read(path, progress); + MappingSaveParameters saveParameters = enigma.getProfile().getMappingSaveParameters(); + + EntryTree mappings = format.read(path, progress, saveParameters); project.setMappings(mappings); loadedMappingFormat = format; @@ -132,6 +134,7 @@ public class GuiController { return ProgressDialog.runOffThread(this.gui.getFrame(), progress -> { EntryRemapper mapper = project.getMapper(); + MappingSaveParameters saveParameters = enigma.getProfile().getMappingSaveParameters(); MappingDelta delta = mapper.takeMappingDelta(); boolean saveAll = !path.equals(loadedMappingPath); @@ -140,9 +143,9 @@ public class GuiController { loadedMappingPath = path; if (saveAll) { - format.write(mapper.getObfToDeobf(), path, progress); + format.write(mapper.getObfToDeobf(), path, progress, saveParameters); } else { - format.write(mapper.getObfToDeobf(), delta, path, progress); + format.write(mapper.getObfToDeobf(), delta, path, progress, saveParameters); } }); } diff --git a/src/main/java/cuchaz/enigma/translation/mapping/MappingFileNameFormat.java b/src/main/java/cuchaz/enigma/translation/mapping/MappingFileNameFormat.java new file mode 100644 index 0000000..e40bfe7 --- /dev/null +++ b/src/main/java/cuchaz/enigma/translation/mapping/MappingFileNameFormat.java @@ -0,0 +1,10 @@ +package cuchaz.enigma.translation.mapping; + +import com.google.gson.annotations.SerializedName; + +public enum MappingFileNameFormat { + @SerializedName("by_obf") + BY_OBF, + @SerializedName("by_deobf") + BY_DEOBF +} diff --git a/src/main/java/cuchaz/enigma/translation/mapping/MappingSaveParameters.java b/src/main/java/cuchaz/enigma/translation/mapping/MappingSaveParameters.java new file mode 100644 index 0000000..07065d6 --- /dev/null +++ b/src/main/java/cuchaz/enigma/translation/mapping/MappingSaveParameters.java @@ -0,0 +1,16 @@ +package cuchaz.enigma.translation.mapping; + +import com.google.gson.annotations.SerializedName; + +public class MappingSaveParameters { + @SerializedName("file_name_format") + private final MappingFileNameFormat fileNameFormat; + + public MappingSaveParameters(MappingFileNameFormat fileNameFormat) { + this.fileNameFormat = fileNameFormat; + } + + public MappingFileNameFormat getFileNameFormat() { + return fileNameFormat; + } +} diff --git a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java index 3f61325..bb0f1ee 100644 --- a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java +++ b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java @@ -6,6 +6,7 @@ import cuchaz.enigma.throwables.MappingParseException; import cuchaz.enigma.translation.mapping.AccessModifier; import cuchaz.enigma.translation.mapping.EntryMapping; import cuchaz.enigma.translation.mapping.MappingPair; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import cuchaz.enigma.translation.mapping.tree.EntryTree; import cuchaz.enigma.translation.mapping.tree.HashEntryTree; import cuchaz.enigma.translation.representation.MethodDescriptor; @@ -25,7 +26,7 @@ import java.util.stream.Collectors; public enum EnigmaMappingsReader implements MappingsReader { FILE { @Override - public EntryTree read(Path path, ProgressListener progress) throws IOException, MappingParseException { + public EntryTree read(Path path, ProgressListener progress, MappingSaveParameters saveParameters) throws IOException, MappingParseException { progress.init(1, "Loading mapping file"); EntryTree mappings = new HashEntryTree<>(); @@ -38,7 +39,7 @@ public enum EnigmaMappingsReader implements MappingsReader { }, DIRECTORY { @Override - public EntryTree read(Path root, ProgressListener progress) throws IOException, MappingParseException { + public EntryTree read(Path root, ProgressListener progress, MappingSaveParameters saveParameters) throws IOException, MappingParseException { EntryTree mappings = new HashEntryTree<>(); List files = Files.walk(root) diff --git a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java index 7a39093..7199be8 100644 --- a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java +++ b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java @@ -31,11 +31,12 @@ import java.util.Collection; import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; +import java.util.stream.Stream; public enum EnigmaMappingsWriter implements MappingsWriter { FILE { @Override - public void write(EntryTree mappings, MappingDelta delta, Path path, ProgressListener progress) { + public void write(EntryTree mappings, MappingDelta delta, Path path, ProgressListener progress, MappingSaveParameters saveParameters) { Collection classes = mappings.getRootNodes() .filter(entry -> entry instanceof ClassEntry) .map(entry -> (ClassEntry) entry) @@ -56,13 +57,13 @@ public enum EnigmaMappingsWriter implements MappingsWriter { }, DIRECTORY { @Override - public void write(EntryTree mappings, MappingDelta delta, Path path, ProgressListener progress) { + public void write(EntryTree mappings, MappingDelta delta, Path path, ProgressListener progress, MappingSaveParameters saveParameters) { Collection changedClasses = delta.getChangedRoots() .filter(entry -> entry instanceof ClassEntry) .map(entry -> (ClassEntry) entry) .collect(Collectors.toList()); - applyDeletions(path, changedClasses, mappings, delta.getBaseMappings()); + applyDeletions(path, changedClasses, mappings, delta.getBaseMappings(), saveParameters.getFileNameFormat()); progress.init(changedClasses.size(), "Writing classes"); @@ -73,7 +74,12 @@ public enum EnigmaMappingsWriter implements MappingsWriter { progress.step(steps.getAndIncrement(), classEntry.getFullName()); try { - Path classPath = resolve(path, translator.translate(classEntry)); + ClassEntry fileEntry = classEntry; + if (saveParameters.getFileNameFormat() == MappingFileNameFormat.BY_DEOBF) { + fileEntry = translator.translate(fileEntry); + } + + Path classPath = resolve(path, fileEntry); Files.createDirectories(classPath.getParent()); Files.deleteIfExists(classPath); @@ -87,13 +93,17 @@ public enum EnigmaMappingsWriter implements MappingsWriter { }); } - private void applyDeletions(Path root, Collection changedClasses, EntryTree mappings, EntryTree oldMappings) { + private void applyDeletions(Path root, Collection changedClasses, EntryTree mappings, EntryTree oldMappings, MappingFileNameFormat fileNameFormat) { Translator oldMappingTranslator = new MappingTranslator(oldMappings, VoidEntryResolver.INSTANCE); - Collection deletedClasses = changedClasses.stream() - .filter(e -> !Objects.equals(oldMappings.get(e), mappings.get(e))) - .map(oldMappingTranslator::translate) - .collect(Collectors.toList()); + Stream deletedClassStream = changedClasses.stream() + .filter(e -> !Objects.equals(oldMappings.get(e), mappings.get(e))); + + if (fileNameFormat == MappingFileNameFormat.BY_DEOBF) { + deletedClassStream = deletedClassStream.map(oldMappingTranslator::translate); + } + + Collection deletedClasses = deletedClassStream.collect(Collectors.toList()); for (ClassEntry classEntry : deletedClasses) { try { diff --git a/src/main/java/cuchaz/enigma/translation/mapping/serde/MappingFormat.java b/src/main/java/cuchaz/enigma/translation/mapping/serde/MappingFormat.java index 2528352..4799589 100644 --- a/src/main/java/cuchaz/enigma/translation/mapping/serde/MappingFormat.java +++ b/src/main/java/cuchaz/enigma/translation/mapping/serde/MappingFormat.java @@ -4,6 +4,7 @@ import cuchaz.enigma.ProgressListener; import cuchaz.enigma.throwables.MappingParseException; import cuchaz.enigma.translation.mapping.EntryMapping; import cuchaz.enigma.translation.mapping.MappingDelta; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import cuchaz.enigma.translation.mapping.tree.EntryTree; import javax.annotation.Nullable; @@ -24,22 +25,22 @@ public enum MappingFormat { this.reader = reader; } - public void write(EntryTree mappings, Path path, ProgressListener progressListener) { - write(mappings, MappingDelta.added(mappings), path, progressListener); + public void write(EntryTree mappings, Path path, ProgressListener progressListener, MappingSaveParameters saveParameters) { + write(mappings, MappingDelta.added(mappings), path, progressListener, saveParameters); } - public void write(EntryTree mappings, MappingDelta delta, Path path, ProgressListener progressListener) { + public void write(EntryTree mappings, MappingDelta delta, Path path, ProgressListener progressListener, MappingSaveParameters saveParameters) { if (writer == null) { throw new IllegalStateException(name() + " does not support writing"); } - writer.write(mappings, delta, path, progressListener); + writer.write(mappings, delta, path, progressListener, saveParameters); } - public EntryTree read(Path path, ProgressListener progressListener) throws IOException, MappingParseException { + public EntryTree read(Path path, ProgressListener progressListener, MappingSaveParameters saveParameters) throws IOException, MappingParseException { if (reader == null) { throw new IllegalStateException(name() + " does not support reading"); } - return reader.read(path, progressListener); + return reader.read(path, progressListener, saveParameters); } @Nullable diff --git a/src/main/java/cuchaz/enigma/translation/mapping/serde/MappingsReader.java b/src/main/java/cuchaz/enigma/translation/mapping/serde/MappingsReader.java index af0933f..4c60787 100644 --- a/src/main/java/cuchaz/enigma/translation/mapping/serde/MappingsReader.java +++ b/src/main/java/cuchaz/enigma/translation/mapping/serde/MappingsReader.java @@ -3,11 +3,12 @@ package cuchaz.enigma.translation.mapping.serde; import cuchaz.enigma.ProgressListener; import cuchaz.enigma.throwables.MappingParseException; import cuchaz.enigma.translation.mapping.EntryMapping; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import cuchaz.enigma.translation.mapping.tree.EntryTree; import java.io.IOException; import java.nio.file.Path; public interface MappingsReader { - EntryTree read(Path path, ProgressListener progress) throws MappingParseException, IOException; + EntryTree read(Path path, ProgressListener progress, MappingSaveParameters saveParameters) throws MappingParseException, IOException; } diff --git a/src/main/java/cuchaz/enigma/translation/mapping/serde/MappingsWriter.java b/src/main/java/cuchaz/enigma/translation/mapping/serde/MappingsWriter.java index 77f6ee0..8815986 100644 --- a/src/main/java/cuchaz/enigma/translation/mapping/serde/MappingsWriter.java +++ b/src/main/java/cuchaz/enigma/translation/mapping/serde/MappingsWriter.java @@ -3,14 +3,15 @@ package cuchaz.enigma.translation.mapping.serde; import cuchaz.enigma.ProgressListener; import cuchaz.enigma.translation.mapping.EntryMapping; import cuchaz.enigma.translation.mapping.MappingDelta; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import cuchaz.enigma.translation.mapping.tree.EntryTree; import java.nio.file.Path; public interface MappingsWriter { - void write(EntryTree mappings, MappingDelta delta, Path path, ProgressListener progress); + void write(EntryTree mappings, MappingDelta delta, Path path, ProgressListener progress, MappingSaveParameters saveParameters); - default void write(EntryTree mappings, Path path, ProgressListener progress) { - write(mappings, MappingDelta.added(mappings), path, progress); + default void write(EntryTree mappings, Path path, ProgressListener progress, MappingSaveParameters saveParameters) { + write(mappings, MappingDelta.added(mappings), path, progress, saveParameters); } } diff --git a/src/main/java/cuchaz/enigma/translation/mapping/serde/SrgMappingsWriter.java b/src/main/java/cuchaz/enigma/translation/mapping/serde/SrgMappingsWriter.java index 40be136..1270d51 100644 --- a/src/main/java/cuchaz/enigma/translation/mapping/serde/SrgMappingsWriter.java +++ b/src/main/java/cuchaz/enigma/translation/mapping/serde/SrgMappingsWriter.java @@ -6,6 +6,7 @@ import cuchaz.enigma.translation.MappingTranslator; import cuchaz.enigma.translation.Translator; import cuchaz.enigma.translation.mapping.EntryMapping; import cuchaz.enigma.translation.mapping.MappingDelta; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import cuchaz.enigma.translation.mapping.VoidEntryResolver; import cuchaz.enigma.translation.mapping.tree.EntryTree; import cuchaz.enigma.translation.mapping.tree.EntryTreeNode; @@ -29,7 +30,7 @@ public enum SrgMappingsWriter implements MappingsWriter { INSTANCE; @Override - public void write(EntryTree mappings, MappingDelta delta, Path path, ProgressListener progress) { + public void write(EntryTree mappings, MappingDelta delta, Path path, ProgressListener progress, MappingSaveParameters saveParameters) { try { Files.deleteIfExists(path); Files.createFile(path); diff --git a/src/main/java/cuchaz/enigma/translation/mapping/serde/TinyMappingsReader.java b/src/main/java/cuchaz/enigma/translation/mapping/serde/TinyMappingsReader.java index bc866bd..81d181b 100644 --- a/src/main/java/cuchaz/enigma/translation/mapping/serde/TinyMappingsReader.java +++ b/src/main/java/cuchaz/enigma/translation/mapping/serde/TinyMappingsReader.java @@ -5,6 +5,7 @@ import cuchaz.enigma.ProgressListener; import cuchaz.enigma.throwables.MappingParseException; import cuchaz.enigma.translation.mapping.EntryMapping; import cuchaz.enigma.translation.mapping.MappingPair; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import cuchaz.enigma.translation.mapping.tree.EntryTree; import cuchaz.enigma.translation.mapping.tree.HashEntryTree; import cuchaz.enigma.translation.representation.MethodDescriptor; @@ -23,7 +24,7 @@ public enum TinyMappingsReader implements MappingsReader { INSTANCE; @Override - public EntryTree read(Path path, ProgressListener progress) throws IOException, MappingParseException { + public EntryTree read(Path path, ProgressListener progress, MappingSaveParameters saveParameters) throws IOException, MappingParseException { return read(path, Files.readAllLines(path, Charsets.UTF_8), progress); } diff --git a/src/main/java/cuchaz/enigma/translation/mapping/serde/TinyMappingsWriter.java b/src/main/java/cuchaz/enigma/translation/mapping/serde/TinyMappingsWriter.java index 0a52dad..ee65690 100644 --- a/src/main/java/cuchaz/enigma/translation/mapping/serde/TinyMappingsWriter.java +++ b/src/main/java/cuchaz/enigma/translation/mapping/serde/TinyMappingsWriter.java @@ -7,6 +7,7 @@ import cuchaz.enigma.translation.MappingTranslator; import cuchaz.enigma.translation.Translator; import cuchaz.enigma.translation.mapping.EntryMapping; import cuchaz.enigma.translation.mapping.MappingDelta; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; import cuchaz.enigma.translation.mapping.VoidEntryResolver; import cuchaz.enigma.translation.mapping.tree.EntryTree; import cuchaz.enigma.translation.mapping.tree.EntryTreeNode; @@ -40,7 +41,7 @@ public class TinyMappingsWriter implements MappingsWriter { } @Override - public void write(EntryTree mappings, MappingDelta delta, Path path, ProgressListener progress) { + public void write(EntryTree mappings, MappingDelta delta, Path path, ProgressListener progress, MappingSaveParameters saveParameters) { try { Files.deleteIfExists(path); Files.createFile(path); -- cgit v1.2.3