From 769c398dd5ba0ca421304f35ac2bb60c1845ab05 Mon Sep 17 00:00:00 2001 From: Agaricus Date: Wed, 23 Jan 2013 21:27:45 -0800 Subject: [PATCH] Add support for non-file jar mapping reading The input is now a BufferedReader, so you can read from a file with new BufferedReader(new FileReader(...)), or from an input stream with new BufferedReader(new InputStreamReader(...)). --- src/main/java/net/md_5/specialsource/JarMapping.java | 10 ++-------- .../java/net/md_5/specialsource/SpecialSource.java | 5 ++++- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/main/java/net/md_5/specialsource/JarMapping.java b/src/main/java/net/md_5/specialsource/JarMapping.java index ce17e0d..b504286 100644 --- a/src/main/java/net/md_5/specialsource/JarMapping.java +++ b/src/main/java/net/md_5/specialsource/JarMapping.java @@ -42,21 +42,15 @@ public class JarMapping { } - public JarMapping(File file) throws IOException { - this(file, null); - } - /** * Load a mapping given a .csrg file * - * @param file Mapping file + * @param reader Mapping file reader * @param shader Relocation to apply to old class names, or null for no * relocation * @throws IOException */ - public JarMapping(File file, ShadeRelocationSimulator shader) throws IOException { - BufferedReader reader = new BufferedReader(new FileReader(file)); - + public JarMapping(BufferedReader reader, ShadeRelocationSimulator shader) throws IOException { if (shader == null) { shader = ShadeRelocationSimulator.IDENTITY; } diff --git a/src/main/java/net/md_5/specialsource/SpecialSource.java b/src/main/java/net/md_5/specialsource/SpecialSource.java index bd5a9ea..3f78a22 100644 --- a/src/main/java/net/md_5/specialsource/SpecialSource.java +++ b/src/main/java/net/md_5/specialsource/SpecialSource.java @@ -28,7 +28,9 @@ */ package net.md_5.specialsource; +import java.io.BufferedReader; import java.io.File; +import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -132,7 +134,8 @@ public class SpecialSource { } log("Loading mappings"); - jarMapping = new JarMapping((File) options.valueOf("srg-in"), shadeRelocationSimulator); + BufferedReader reader = new BufferedReader(new FileReader((File) options.valueOf("srg-in"))); + jarMapping = new JarMapping(reader, shadeRelocationSimulator); } else { System.err.println("No mappings given, first-jar/second-jar or srg-in required"); parser.printHelpOn(System.err);