Refactor and rename transform classes
This commit is contained in:
parent
b3934893e0
commit
1ed5c500b0
@ -28,14 +28,15 @@
|
|||||||
*/
|
*/
|
||||||
package net.md_5.specialsource;
|
package net.md_5.specialsource;
|
||||||
|
|
||||||
|
import net.md_5.specialsource.transformer.MavenShade;
|
||||||
import net.md_5.specialsource.srg.CompactSrgWriter;
|
import net.md_5.specialsource.srg.CompactSrgWriter;
|
||||||
import net.md_5.specialsource.srg.SrgWriter;
|
import net.md_5.specialsource.srg.SrgWriter;
|
||||||
import net.md_5.specialsource.srg.ISrgWriter;
|
import net.md_5.specialsource.srg.ISrgWriter;
|
||||||
import net.md_5.specialsource.provider.IInheritanceProvider;
|
import net.md_5.specialsource.provider.IInheritanceProvider;
|
||||||
import net.md_5.specialsource.transformer.CSVMappingTransformer;
|
import net.md_5.specialsource.transformer.MinecraftCodersPack;
|
||||||
import net.md_5.specialsource.transformer.MethodDescriptorTransformer;
|
import net.md_5.specialsource.transformer.MethodDescriptor;
|
||||||
import net.md_5.specialsource.transformer.ChainTransformer;
|
import net.md_5.specialsource.transformer.ChainingTransformer;
|
||||||
import net.md_5.specialsource.transformer.JarMappingLoadTransformer;
|
import net.md_5.specialsource.transformer.MappingTransformer;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@ -140,8 +141,8 @@ public class JarMapping {
|
|||||||
File methodsCsv = URLDownloader.getLocalFile(dirname + sep + "methods.csv");
|
File methodsCsv = URLDownloader.getLocalFile(dirname + sep + "methods.csv");
|
||||||
File packagesCsv = URLDownloader.getLocalFile(dirname + sep + "packages.csv"); // FML repackaging, optional
|
File packagesCsv = URLDownloader.getLocalFile(dirname + sep + "packages.csv"); // FML repackaging, optional
|
||||||
|
|
||||||
CSVMappingTransformer outputTransformer;
|
MinecraftCodersPack outputTransformer;
|
||||||
JarMappingLoadTransformer inputTransformer;
|
MappingTransformer inputTransformer;
|
||||||
|
|
||||||
if (numericSrgNames) {
|
if (numericSrgNames) {
|
||||||
// Wants numeric "srg" names -> descriptive "csv" names. To accomplish this:
|
// Wants numeric "srg" names -> descriptive "csv" names. To accomplish this:
|
||||||
@ -150,14 +151,14 @@ public class JarMapping {
|
|||||||
// 3. result: mcp->srg, similar to MCP ./reobfuscate --srgnames
|
// 3. result: mcp->srg, similar to MCP ./reobfuscate --srgnames
|
||||||
JarMapping chainMappings = new JarMapping();
|
JarMapping chainMappings = new JarMapping();
|
||||||
chainMappings.loadMappingsDir(dirname, reverse, false/*ignoreCsv*/, false/*numeric*/);
|
chainMappings.loadMappingsDir(dirname, reverse, false/*ignoreCsv*/, false/*numeric*/);
|
||||||
inputTransformer = new ChainTransformer(new JarRemapper(chainMappings));
|
inputTransformer = new ChainingTransformer(new JarRemapper(chainMappings));
|
||||||
ignoreCsv = true; // keep numeric srg as output
|
ignoreCsv = true; // keep numeric srg as output
|
||||||
} else {
|
} else {
|
||||||
inputTransformer = null;
|
inputTransformer = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fieldsCsv.exists() && methodsCsv.exists()) {
|
if (fieldsCsv.exists() && methodsCsv.exists()) {
|
||||||
outputTransformer = new CSVMappingTransformer(ignoreCsv ? null : fieldsCsv, ignoreCsv ? null : methodsCsv, packagesCsv);
|
outputTransformer = new MinecraftCodersPack(ignoreCsv ? null : fieldsCsv, ignoreCsv ? null : methodsCsv, packagesCsv);
|
||||||
} else {
|
} else {
|
||||||
outputTransformer = null;
|
outputTransformer = null;
|
||||||
}
|
}
|
||||||
@ -167,11 +168,6 @@ public class JarMapping {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public void loadMappingsDir(String dirname, boolean reverse, boolean ignoreCsv) throws IOException {
|
|
||||||
loadMappingsDir(dirname, reverse, ignoreCsv, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void loadMappings(File file) throws IOException {
|
public void loadMappings(File file) throws IOException {
|
||||||
loadMappings(new BufferedReader(new FileReader(file)), null, null, false);
|
loadMappings(new BufferedReader(new FileReader(file)), null, null, false);
|
||||||
}
|
}
|
||||||
@ -189,15 +185,15 @@ public class JarMapping {
|
|||||||
*/
|
*/
|
||||||
public void loadMappings(String filename, boolean reverse, boolean numericSrgNames, String inShadeRelocation, String outShadeRelocation) throws IOException {
|
public void loadMappings(String filename, boolean reverse, boolean numericSrgNames, String inShadeRelocation, String outShadeRelocation) throws IOException {
|
||||||
// Optional shade relocation, on input or output names
|
// Optional shade relocation, on input or output names
|
||||||
JarMappingLoadTransformer inputTransformer = null;
|
MappingTransformer inputTransformer = null;
|
||||||
JarMappingLoadTransformer outputTransformer = null;
|
MappingTransformer outputTransformer = null;
|
||||||
|
|
||||||
if (inShadeRelocation != null) {
|
if (inShadeRelocation != null) {
|
||||||
inputTransformer = new ShadeRelocationSimulator(inShadeRelocation);
|
inputTransformer = new MavenShade(inShadeRelocation);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (outShadeRelocation != null) {
|
if (outShadeRelocation != null) {
|
||||||
outputTransformer = new ShadeRelocationSimulator(outShadeRelocation);
|
outputTransformer = new MavenShade(outShadeRelocation);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (new File(filename).isDirectory() || filename.endsWith("/")) {
|
if (new File(filename).isDirectory() || filename.endsWith("/")) {
|
||||||
@ -229,12 +225,12 @@ public class JarMapping {
|
|||||||
* input/output transformations)
|
* input/output transformations)
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
public void loadMappings(BufferedReader reader, JarMappingLoadTransformer inputTransformer, JarMappingLoadTransformer outputTransformer, boolean reverse) throws IOException {
|
public void loadMappings(BufferedReader reader, MappingTransformer inputTransformer, MappingTransformer outputTransformer, boolean reverse) throws IOException {
|
||||||
if (inputTransformer == null) {
|
if (inputTransformer == null) {
|
||||||
inputTransformer = ShadeRelocationSimulator.IDENTITY;
|
inputTransformer = MavenShade.IDENTITY;
|
||||||
}
|
}
|
||||||
if (outputTransformer == null) {
|
if (outputTransformer == null) {
|
||||||
outputTransformer = ShadeRelocationSimulator.IDENTITY;
|
outputTransformer = MavenShade.IDENTITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
String line;
|
String line;
|
||||||
@ -256,7 +252,7 @@ public class JarMapping {
|
|||||||
/**
|
/**
|
||||||
* Parse a 'csrg' mapping format line and populate the data structures
|
* Parse a 'csrg' mapping format line and populate the data structures
|
||||||
*/
|
*/
|
||||||
private void parseCsrgLine(String line, JarMappingLoadTransformer inputTransformer, JarMappingLoadTransformer outputTransformer, boolean reverse) throws IOException {
|
private void parseCsrgLine(String line, MappingTransformer inputTransformer, MappingTransformer outputTransformer, boolean reverse) throws IOException {
|
||||||
if (reverse) {
|
if (reverse) {
|
||||||
throw new IllegalArgumentException("csrg reversed not supported"); // TODO: reverse csg (need to lookup remapped classes)
|
throw new IllegalArgumentException("csrg reversed not supported"); // TODO: reverse csg (need to lookup remapped classes)
|
||||||
}
|
}
|
||||||
@ -293,7 +289,7 @@ public class JarMapping {
|
|||||||
* Parse a standard 'srg' mapping format line and populate the data
|
* Parse a standard 'srg' mapping format line and populate the data
|
||||||
* structures
|
* structures
|
||||||
*/
|
*/
|
||||||
private void parseSrgLine(String line, JarMappingLoadTransformer inputTransformer, JarMappingLoadTransformer outputTransformer, boolean reverse) throws IOException {
|
private void parseSrgLine(String line, MappingTransformer inputTransformer, MappingTransformer outputTransformer, boolean reverse) throws IOException {
|
||||||
String[] tokens = line.split(" ");
|
String[] tokens = line.split(" ");
|
||||||
String kind = tokens[0];
|
String kind = tokens[0];
|
||||||
|
|
||||||
@ -444,7 +440,7 @@ public class JarMapping {
|
|||||||
String key = oldMethod.owner + "/" + oldMethod.name + " " + oldMethod.descriptor;
|
String key = oldMethod.owner + "/" + oldMethod.name + " " + oldMethod.descriptor;
|
||||||
methods.put(key, newMethod.name);
|
methods.put(key, newMethod.name);
|
||||||
|
|
||||||
MethodDescriptorTransformer methodDescriptorTransformer = new MethodDescriptorTransformer(null, classes);
|
MethodDescriptor methodDescriptorTransformer = new MethodDescriptor(null, classes);
|
||||||
String oldDescriptor = methodDescriptorTransformer.transform(oldMethod.descriptor);
|
String oldDescriptor = methodDescriptorTransformer.transform(oldMethod.descriptor);
|
||||||
|
|
||||||
if (full || !(oldMethod.name + " " + oldDescriptor).equals(newMethod.name + " " + newMethod.descriptor)) {
|
if (full || !(oldMethod.name + " " + oldDescriptor).equals(newMethod.name + " " + newMethod.descriptor)) {
|
||||||
|
@ -61,7 +61,7 @@ public class JarRemapper extends Remapper {
|
|||||||
return mapTypeName(typeName, jarMapping.packages, jarMapping.classes, typeName);
|
return mapTypeName(typeName, jarMapping.packages, jarMapping.classes, typeName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String mapTypeName(String typeName, LinkedHashMap<String, String> packageMap, Map<String, String> classMap, String defaultIfUnmapped) {
|
public static String mapTypeName(String typeName, Map<String, String> packageMap, Map<String, String> classMap, String defaultIfUnmapped) {
|
||||||
int index = typeName.indexOf('$');
|
int index = typeName.indexOf('$');
|
||||||
String key = (index == -1) ? typeName : typeName.substring(0, index);
|
String key = (index == -1) ? typeName : typeName.substring(0, index);
|
||||||
String mapped = mapClassName(key, packageMap, classMap);
|
String mapped = mapClassName(key, packageMap, classMap);
|
||||||
@ -72,7 +72,7 @@ public class JarRemapper extends Remapper {
|
|||||||
/**
|
/**
|
||||||
* Helper method to map a class name by package (prefix) or class (exact)
|
* Helper method to map a class name by package (prefix) or class (exact)
|
||||||
*/
|
*/
|
||||||
private static String mapClassName(String className, LinkedHashMap<String, String> packageMap, Map<String, String> classMap) {
|
private static String mapClassName(String className, Map<String, String> packageMap, Map<String, String> classMap) {
|
||||||
if (packageMap != null) {
|
if (packageMap != null) {
|
||||||
Iterator<String> iter = packageMap.keySet().iterator();
|
Iterator<String> iter = packageMap.keySet().iterator();
|
||||||
while (iter.hasNext()) {
|
while (iter.hasNext()) {
|
||||||
|
@ -31,17 +31,18 @@ package net.md_5.specialsource.transformer;
|
|||||||
import net.md_5.specialsource.JarRemapper;
|
import net.md_5.specialsource.JarRemapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load a mapping 'chained' through another mapping
|
* Load a mapping 'chained' through another mapping.
|
||||||
*/
|
*/
|
||||||
public class ChainTransformer extends JarMappingLoadTransformer {
|
public class ChainingTransformer extends MappingTransformer {
|
||||||
|
|
||||||
private final JarRemapper jarRemapper;
|
private final JarRemapper jarRemapper;
|
||||||
|
private final MethodDescriptor methodTransformer;
|
||||||
|
|
||||||
public ChainTransformer(JarRemapper jarRemapper) {
|
public ChainingTransformer(JarRemapper jarRemapper) {
|
||||||
this.jarRemapper = jarRemapper;
|
this.jarRemapper = jarRemapper;
|
||||||
|
this.methodTransformer = new MethodDescriptor(jarRemapper.jarMapping.packages, jarRemapper.jarMapping.classes);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: make this less lame
|
|
||||||
@Override
|
@Override
|
||||||
public String transformClassName(String className) {
|
public String transformClassName(String className) {
|
||||||
return jarRemapper.map(className);
|
return jarRemapper.map(className);
|
||||||
@ -59,7 +60,6 @@ public class ChainTransformer extends JarMappingLoadTransformer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String transformMethodDescriptor(String oldDescriptor) {
|
public String transformMethodDescriptor(String oldDescriptor) {
|
||||||
MethodDescriptorTransformer methodDescriptorTransformer = new MethodDescriptorTransformer(jarRemapper.jarMapping.packages, jarRemapper.jarMapping.classes);
|
return methodTransformer.transform(oldDescriptor);
|
||||||
return methodDescriptorTransformer.transform(oldDescriptor);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -33,7 +33,7 @@ package net.md_5.specialsource.transformer;
|
|||||||
*
|
*
|
||||||
* TODO: refactor with JarRemapper?
|
* TODO: refactor with JarRemapper?
|
||||||
*/
|
*/
|
||||||
public abstract class JarMappingLoadTransformer {
|
public abstract class MappingTransformer {
|
||||||
|
|
||||||
public String transformClassName(String className) {
|
public String transformClassName(String className) {
|
||||||
return className;
|
return className;
|
@ -26,23 +26,21 @@
|
|||||||
* 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.transformer.MethodDescriptorTransformer;
|
|
||||||
import net.md_5.specialsource.transformer.JarMappingLoadTransformer;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simulate a small subset of the maven-shade-plugin class relocation
|
* Simulate a small subset of the maven-shade-plugin class relocation
|
||||||
* functionality
|
* functionality
|
||||||
*/
|
*/
|
||||||
public class ShadeRelocationSimulator extends JarMappingLoadTransformer {
|
public class MavenShade extends MappingTransformer {
|
||||||
|
|
||||||
public LinkedHashMap<String, String> relocations = new LinkedHashMap<String, String>();
|
public LinkedHashMap<String, String> relocations = new LinkedHashMap<String, String>();
|
||||||
// No relocations
|
// No relocations
|
||||||
public static final ShadeRelocationSimulator IDENTITY = new ShadeRelocationSimulator();
|
public static final MavenShade IDENTITY = new MavenShade();
|
||||||
|
|
||||||
private ShadeRelocationSimulator() {
|
private MavenShade() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -50,7 +48,7 @@ public class ShadeRelocationSimulator extends JarMappingLoadTransformer {
|
|||||||
*
|
*
|
||||||
* @param relocations
|
* @param relocations
|
||||||
*/
|
*/
|
||||||
public ShadeRelocationSimulator(Map<String, String> relocations) {
|
public MavenShade(Map<String, String> relocations) {
|
||||||
for (Map.Entry<String, String> entry : relocations.entrySet()) {
|
for (Map.Entry<String, String> entry : relocations.entrySet()) {
|
||||||
this.relocations.put(toInternalName(entry.getKey()), toInternalName(entry.getValue()));
|
this.relocations.put(toInternalName(entry.getKey()), toInternalName(entry.getValue()));
|
||||||
}
|
}
|
||||||
@ -62,7 +60,7 @@ public class ShadeRelocationSimulator extends JarMappingLoadTransformer {
|
|||||||
*
|
*
|
||||||
* @param list
|
* @param list
|
||||||
*/
|
*/
|
||||||
public ShadeRelocationSimulator(List<String> list) {
|
public MavenShade(List<String> list) {
|
||||||
for (String pair : list) {
|
for (String pair : list) {
|
||||||
int index = pair.indexOf("=");
|
int index = pair.indexOf("=");
|
||||||
if (index == -1) {
|
if (index == -1) {
|
||||||
@ -75,7 +73,7 @@ public class ShadeRelocationSimulator extends JarMappingLoadTransformer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ShadeRelocationSimulator(String string) {
|
public MavenShade(String string) {
|
||||||
this(Arrays.asList(string.split(",")));
|
this(Arrays.asList(string.split(",")));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,7 +96,7 @@ public class ShadeRelocationSimulator extends JarMappingLoadTransformer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String transformMethodDescriptor(String oldDescriptor) {
|
public String transformMethodDescriptor(String oldDescriptor) {
|
||||||
MethodDescriptorTransformer methodDescriptorTransformer = new MethodDescriptorTransformer(relocations, null);
|
MethodDescriptor methodDescriptorTransformer = new MethodDescriptor(relocations, null);
|
||||||
return methodDescriptorTransformer.transform(oldDescriptor);
|
return methodDescriptorTransformer.transform(oldDescriptor);
|
||||||
}
|
}
|
||||||
|
|
@ -28,16 +28,15 @@
|
|||||||
*/
|
*/
|
||||||
package net.md_5.specialsource.transformer;
|
package net.md_5.specialsource.transformer;
|
||||||
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import net.md_5.specialsource.JarRemapper;
|
import net.md_5.specialsource.JarRemapper;
|
||||||
|
|
||||||
public class MethodDescriptorTransformer {
|
public class MethodDescriptor {
|
||||||
|
|
||||||
private LinkedHashMap<String, String> packageMap;
|
private Map<String, String> packageMap;
|
||||||
private Map<String, String> classMap;
|
private Map<String, String> classMap;
|
||||||
|
|
||||||
public MethodDescriptorTransformer(LinkedHashMap<String, String> packageMap, Map<String, String> classMap) {
|
public MethodDescriptor(Map<String, String> packageMap, Map<String, String> classMap) {
|
||||||
this.packageMap = packageMap;
|
this.packageMap = packageMap;
|
||||||
this.classMap = classMap;
|
this.classMap = classMap;
|
||||||
}
|
}
|
@ -29,6 +29,7 @@
|
|||||||
package net.md_5.specialsource.transformer;
|
package net.md_5.specialsource.transformer;
|
||||||
|
|
||||||
import au.com.bytecode.opencsv.CSVReader;
|
import au.com.bytecode.opencsv.CSVReader;
|
||||||
|
import com.google.common.base.Preconditions;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
@ -38,19 +39,16 @@ import java.util.Map;
|
|||||||
import net.md_5.specialsource.JarRemapper;
|
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
|
||||||
* field_### in input srg to "descriptive" names
|
* field_### in input srg to "descriptive" names.
|
||||||
*/
|
*/
|
||||||
public class CSVMappingTransformer extends JarMappingLoadTransformer {
|
public class MinecraftCodersPack extends MappingTransformer {
|
||||||
|
|
||||||
private final Map<String, String> fieldMap; // numeric srg name field_### -> descriptive csv name
|
private final Map<String, String> fieldMap = new HashMap<String, String>(); // numeric srg name field_### -> descriptive csv name
|
||||||
private final Map<String, String> methodMap; // numeric srg name func_### -> descriptive csv name
|
private final Map<String, String> methodMap = new HashMap<String, String>(); // numeric srg name func_### -> descriptive csv name
|
||||||
private final Map<String, String> classPackageMap; // class src name -> repackaged full class name
|
private final Map<String, String> classPackageMap; // class src name -> repackaged full class name
|
||||||
|
|
||||||
public CSVMappingTransformer(File fieldsCsv, File methodsCsv, File packagesCsv) throws IOException {
|
public MinecraftCodersPack(File fieldsCsv, File methodsCsv, File packagesCsv) throws IOException {
|
||||||
fieldMap = new HashMap<String, String>();
|
|
||||||
methodMap = new HashMap<String, String>();
|
|
||||||
|
|
||||||
if (fieldsCsv != null && fieldsCsv.exists()) {
|
if (fieldsCsv != null && fieldsCsv.exists()) {
|
||||||
readIntoMap(fieldsCsv, fieldMap);
|
readIntoMap(fieldsCsv, fieldMap);
|
||||||
}
|
}
|
||||||
@ -65,12 +63,8 @@ public class CSVMappingTransformer extends JarMappingLoadTransformer {
|
|||||||
|
|
||||||
Map<String, String> packages = new HashMap<String, String>();
|
Map<String, String> packages = new HashMap<String, String>();
|
||||||
readIntoMap(packagesCsv, packages);
|
readIntoMap(packagesCsv, packages);
|
||||||
|
|
||||||
for (Map.Entry<String, String> entry : packages.entrySet()) {
|
for (Map.Entry<String, String> entry : packages.entrySet()) {
|
||||||
String classSimpleName = entry.getKey();
|
classPackageMap.put("net/minecraft/src/" + entry.getKey(), entry.getValue() + "/" + entry.getKey());
|
||||||
String newPackageName = entry.getValue();
|
|
||||||
|
|
||||||
classPackageMap.put("net/minecraft/src/" + classSimpleName, newPackageName + "/" + classSimpleName);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// flat package (vanilla MCP)
|
// flat package (vanilla MCP)
|
||||||
@ -79,33 +73,40 @@ public class CSVMappingTransformer extends JarMappingLoadTransformer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void readIntoMap(File file, Map<String, String> map) throws IOException {
|
private void readIntoMap(File file, Map<String, String> map) throws IOException {
|
||||||
CSVReader csvReader = new CSVReader(new FileReader(file));
|
FileReader fileReader = null;
|
||||||
String[] line;
|
CSVReader csvReader = null;
|
||||||
|
try {
|
||||||
|
fileReader = new FileReader(file);
|
||||||
|
csvReader = new CSVReader(fileReader);
|
||||||
|
|
||||||
|
String[] line;
|
||||||
while ((line = csvReader.readNext()) != null) {
|
while ((line = csvReader.readNext()) != null) {
|
||||||
if (line.length == 0) {
|
if (line.length == 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
Preconditions.checkArgument(line.length >= 2, "Invalid csv line: %s", (Object) line);
|
||||||
if (line.length < 2) {
|
map.put(line[0], line[1]);
|
||||||
throw new IllegalArgumentException("Invalid csv line: " + line);
|
}
|
||||||
|
} finally {
|
||||||
|
if (csvReader != null) {
|
||||||
|
csvReader.close();
|
||||||
|
}
|
||||||
|
if (fileReader != null) {
|
||||||
|
fileReader.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
String key = line[0];
|
|
||||||
String value = line[1];
|
|
||||||
|
|
||||||
map.put(key, value);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String transformFieldName(String className, String fieldName) {
|
public String transformFieldName(String className, String fieldName) {
|
||||||
return fieldMap.containsKey(fieldName) ? fieldMap.get(fieldName) : fieldName;
|
String mapped = fieldMap.get(fieldName);
|
||||||
|
return (mapped != null) ? mapped : fieldName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String transformMethodName(String className, String methodName, String methodDescriptor) {
|
public String transformMethodName(String className, String methodName, String methodDescriptor) {
|
||||||
return methodMap.containsKey(methodName) ? methodMap.get(methodName) : methodName;
|
String mapped = methodMap.get(methodName);
|
||||||
|
return (mapped != null) ? mapped : methodName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -114,12 +115,8 @@ public class CSVMappingTransformer extends JarMappingLoadTransformer {
|
|||||||
return className;
|
return className;
|
||||||
}
|
}
|
||||||
|
|
||||||
String newPackage = classPackageMap.get(className);
|
String mapped = classPackageMap.get(className);
|
||||||
if (newPackage == null) {
|
return (mapped != null) ? JarRemapper.mapTypeName(className, null, classPackageMap, className) : className;
|
||||||
return className;
|
|
||||||
}
|
|
||||||
|
|
||||||
return JarRemapper.mapTypeName(className, null, classPackageMap, className);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -128,7 +125,7 @@ public class CSVMappingTransformer extends JarMappingLoadTransformer {
|
|||||||
return oldDescriptor;
|
return oldDescriptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
MethodDescriptorTransformer methodDescriptorTransformer = new MethodDescriptorTransformer(null, classPackageMap);
|
MethodDescriptor methodDescriptorTransformer = new MethodDescriptor(null, classPackageMap);
|
||||||
return methodDescriptorTransformer.transform(oldDescriptor);
|
return methodDescriptorTransformer.transform(oldDescriptor);
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user