Refactor a few classes into packages.

This commit is contained in:
md_5 2013-04-20 12:19:18 +10:00
parent 3a7ef779bf
commit 73b1cfd81c
19 changed files with 48 additions and 43 deletions

View File

@ -28,6 +28,7 @@
*/ */
package net.md_5.specialsource; package net.md_5.specialsource;
import net.md_5.specialsource.provider.IInheritanceProvider;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.common.collect.BiMap; import com.google.common.collect.BiMap;

View File

@ -28,6 +28,14 @@
*/ */
package net.md_5.specialsource; package net.md_5.specialsource;
import net.md_5.specialsource.srg.CompactSrgWriter;
import net.md_5.specialsource.srg.SrgWriter;
import net.md_5.specialsource.srg.ISrgWriter;
import net.md_5.specialsource.provider.IInheritanceProvider;
import net.md_5.specialsource.transformer.CSVMappingTransformer;
import net.md_5.specialsource.transformer.MethodDescriptorTransformer;
import net.md_5.specialsource.transformer.ChainTransformer;
import net.md_5.specialsource.transformer.JarMappingLoadTransformer;
import java.io.*; import java.io.*;
import java.util.*; import java.util.*;

View File

@ -37,8 +37,8 @@ import lombok.Data;
@Data @Data
public class Ownable { public class Ownable {
final NodeType type; public final NodeType type;
final String owner; public final String owner;
final String name; public final String name;
final String descriptor; public final String descriptor;
} }

View File

@ -28,6 +28,8 @@
*/ */
package net.md_5.specialsource; package net.md_5.specialsource;
import net.md_5.specialsource.transformer.MethodDescriptorTransformer;
import net.md_5.specialsource.transformer.JarMappingLoadTransformer;
import java.util.*; import java.util.*;
/** /**

View File

@ -28,11 +28,13 @@
*/ */
package net.md_5.specialsource; package net.md_5.specialsource;
import net.md_5.specialsource.provider.InheritanceProviders;
import net.md_5.specialsource.provider.JarInheritanceProvider;
import net.md_5.specialsource.provider.RemappedRuntimeInheritanceProvider;
import net.md_5.specialsource.provider.RuntimeInheritanceProvider;
import java.io.*; import java.io.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.jar.JarFile;
import com.google.common.collect.BiMap; import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap; import com.google.common.collect.HashBiMap;
import joptsimple.OptionException; import joptsimple.OptionException;

View File

@ -29,15 +29,13 @@
package net.md_5.specialsource; package net.md_5.specialsource;
import com.google.common.base.CharMatcher; import com.google.common.base.CharMatcher;
import com.google.common.io.Files;
import java.io.*; import java.io.*;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
public class URLDownloader { public class URLDownloader {
private static String CACHE_FOLDER = "SpecialSource.cache"; private static String CACHE_FOLDER = ".ss-cache";
private URL url; private URL url;
public static boolean verbose = true; public static boolean verbose = true;
public static boolean useCache = true; public static boolean useCache = true;
@ -74,8 +72,8 @@ public class URLDownloader {
FileOutputStream outputStream = new FileOutputStream(file); FileOutputStream outputStream = new FileOutputStream(file);
int n;
byte[] buffer = new byte[4096]; byte[] buffer = new byte[4096];
int n = 0;
while ((n = inputStream.read(buffer)) != -1) { while ((n = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, n); outputStream.write(buffer, 0, n);
} }
@ -102,23 +100,4 @@ public class URLDownloader {
public static boolean isHTTPURL(String string) { public static boolean isHTTPURL(String string) {
return string.startsWith("http://") || string.startsWith("https://"); return string.startsWith("http://") || string.startsWith("https://");
} }
// Borrowed from Guava 13 (since we're on Guava 12) - TODO: remove and use Guava after https://github.com/MinecraftForge/FML/commit/937e9a016936195e4dc51f33ab9e8dde52621684
/**
* Returns the file name without its
* <a href="http://en.wikipedia.org/wiki/Filename_extension">file
* extension</a> or path. This is similar to the {@code basename} unix
* command. The result does not include the '{@code .}'.
*
* @param file The name of the file to trim the extension from. This can be
* either a fully qualified file name (including a path) or just a file
* name.
* @return The file name without its path or extension.
* @since 14.0
*/
public static String getNameWithoutExtension(String file) {
String fileName = new File(file).getName();
int dotIndex = fileName.lastIndexOf('.');
return (dotIndex == -1) ? fileName : fileName.substring(0, dotIndex);
}
} }

View File

@ -26,7 +26,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.md_5.specialsource; package net.md_5.specialsource.provider;
import java.util.List; import java.util.List;

View File

@ -26,7 +26,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.md_5.specialsource; package net.md_5.specialsource.provider;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@ -26,13 +26,14 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.md_5.specialsource; package net.md_5.specialsource.provider;
import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.ClassNode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import lombok.ToString; import lombok.ToString;
import net.md_5.specialsource.Jar;
/** /**
* Lookup inheritance from a class given a jar. * Lookup inheritance from a class given a jar.

View File

@ -26,11 +26,13 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.md_5.specialsource; package net.md_5.specialsource.provider;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import net.md_5.specialsource.JarMapping;
import net.md_5.specialsource.JarRemapper;
/** /**
* Lookup class inheritance from classes at runtime, remapped through a * Lookup class inheritance from classes at runtime, remapped through a

View File

@ -26,7 +26,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.md_5.specialsource; package net.md_5.specialsource.provider;
import java.util.List; import java.util.List;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -26,11 +26,10 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.md_5.specialsource; package net.md_5.specialsource.provider;
import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassReader;
import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.ClassNode;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.net.URL; import java.net.URL;

View File

@ -26,13 +26,14 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.md_5.specialsource; package net.md_5.specialsource.srg;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.md_5.specialsource.Ownable;
public class CompactSrgWriter implements ISrgWriter { public class CompactSrgWriter implements ISrgWriter {

View File

@ -26,9 +26,10 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.md_5.specialsource; package net.md_5.specialsource.srg;
import java.io.IOException; import java.io.IOException;
import net.md_5.specialsource.Ownable;
public interface ISrgWriter { public interface ISrgWriter {

View File

@ -26,7 +26,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.md_5.specialsource; package net.md_5.specialsource.srg;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
@ -35,6 +35,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import net.md_5.specialsource.Ownable;
public class SrgWriter implements ISrgWriter { public class SrgWriter implements ISrgWriter {
@ -72,14 +73,18 @@ public class SrgWriter implements ISrgWriter {
@Override @Override
public void write() throws IOException { public void write() throws IOException {
// Sort lines for easy finding
Collections.sort(lines); Collections.sort(lines);
// No try with resources for us! // No try with resources for us!
try { try {
// Format header
out.println(MessageFormat.format(HEADER, oldJarName, newJarName, new Date())); out.println(MessageFormat.format(HEADER, oldJarName, newJarName, new Date()));
// Write out lines
for (String s : lines) { for (String s : lines) {
out.println(s); out.println(s);
} }
} finally { } finally {
// Make sure we close the outputstream in all cases
out.close(); out.close();
} }
} }

View File

@ -26,7 +26,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.md_5.specialsource; package net.md_5.specialsource.transformer;
import au.com.bytecode.opencsv.CSVReader; import au.com.bytecode.opencsv.CSVReader;
@ -35,6 +35,7 @@ import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import net.md_5.specialsource.JarRemapper;
/** /**
* For reading a .srg through MCP's fields.csv and methods.csv Maps func_### and * For reading a .srg through MCP's fields.csv and methods.csv Maps func_### and

View File

@ -26,7 +26,9 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.md_5.specialsource; package net.md_5.specialsource.transformer;
import net.md_5.specialsource.JarRemapper;
/** /**
* Load a mapping 'chained' through another mapping * Load a mapping 'chained' through another mapping

View File

@ -26,7 +26,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.md_5.specialsource; package net.md_5.specialsource.transformer;
/** /**
* Transform mapping files while loading (only) * Transform mapping files while loading (only)

View File

@ -26,10 +26,11 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.md_5.specialsource; package net.md_5.specialsource.transformer;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import net.md_5.specialsource.JarRemapper;
public class MethodDescriptorTransformer { public class MethodDescriptorTransformer {