From c1d7c42de903cc471f21d78072f1a973d08d2a49 Mon Sep 17 00:00:00 2001 From: lclc98 Date: Sat, 2 Jul 2016 15:10:44 +1000 Subject: Fixed Null.json and #4 --- .../java/cuchaz/enigma/mapping/MappingsReader.java | 4 +- .../java/cuchaz/enigma/mapping/MappingsWriter.java | 61 ++++++++++++---------- 2 files changed, 34 insertions(+), 31 deletions(-) diff --git a/src/main/java/cuchaz/enigma/mapping/MappingsReader.java b/src/main/java/cuchaz/enigma/mapping/MappingsReader.java index ccbbf8d9..7110d40c 100644 --- a/src/main/java/cuchaz/enigma/mapping/MappingsReader.java +++ b/src/main/java/cuchaz/enigma/mapping/MappingsReader.java @@ -74,9 +74,7 @@ public class MappingsReader { classMapping.addMethodMapping(methodMapping); }); - jsonClass.getInnerClass().forEach(jsonInnerClasses -> { - load(classMapping, jsonInnerClasses, mappings); - }); + jsonClass.getInnerClass().forEach(jsonInnerClasses -> load(classMapping, jsonInnerClasses, mappings)); } private ArgumentMapping readArgument(int index, String name) { diff --git a/src/main/java/cuchaz/enigma/mapping/MappingsWriter.java b/src/main/java/cuchaz/enigma/mapping/MappingsWriter.java index aa37f166..89fee4e8 100644 --- a/src/main/java/cuchaz/enigma/mapping/MappingsWriter.java +++ b/src/main/java/cuchaz/enigma/mapping/MappingsWriter.java @@ -27,46 +27,51 @@ public class MappingsWriter { public void write(File file, Mappings mappings) throws IOException { if (!file.isDirectory()) { - //TODO Error + return; + } + + String[] entries = file.list(); + for (String s : entries) { + File currentFile = new File(file.getPath(), s); + currentFile.delete(); } Gson gson = new GsonBuilder().setPrettyPrinting().create(); for (ClassMapping classMapping : sorted(mappings.classes())) { - JsonClass jsonClass = new JsonClass(classMapping.getObfSimpleName(), classMapping.getDeobfName()); - write(jsonClass, classMapping); + if (classMapping.getDeobfName() != null && !classMapping.getDeobfName().equalsIgnoreCase("") && !classMapping.getDeobfName().equalsIgnoreCase("null")) { + JsonClass jsonClass = new JsonClass(classMapping.getObfSimpleName(), classMapping.getDeobfName()); + write(jsonClass, classMapping); - File f = new File(file, jsonClass.getName() + ".json"); - f.getParentFile().mkdirs(); - f.createNewFile(); - FileWriter writer = new FileWriter(f); - writer.write(gson.toJson(jsonClass)); - writer.close(); + File f = new File(file, jsonClass.getName() + ".json"); + f.getParentFile().mkdirs(); + f.createNewFile(); + FileWriter writer = new FileWriter(f); + writer.write(gson.toJson(jsonClass)); + writer.close(); + } } } private void write(JsonClass jsonClass, ClassMapping classMapping) throws IOException { - if (classMapping.getDeobfName() != null && !classMapping.getDeobfName().equalsIgnoreCase("") && !classMapping.getDeobfName().equalsIgnoreCase("null")) { + for (ClassMapping innerClassMapping : sorted(classMapping.innerClasses())) { + JsonClass innerClass = new JsonClass(classMapping.getObfSimpleName() + "$" + innerClassMapping.getObfSimpleName().replace("nome/", ""), innerClassMapping.getDeobfName()); + write(innerClass, innerClassMapping); + jsonClass.addInnerClass(innerClass); + } - for (ClassMapping innerClassMapping : sorted(classMapping.innerClasses())) { - JsonClass innerClass = new JsonClass(classMapping.getObfSimpleName() + "$" + innerClassMapping.getObfSimpleName().replace("nome/", ""), innerClassMapping.getDeobfName()); - write(innerClass, innerClassMapping); - jsonClass.addInnerClass(innerClass); - } + for (FieldMapping fieldMapping : sorted(classMapping.fields())) { + jsonClass.addField(new JsonField(fieldMapping.getObfName(), fieldMapping.getDeobfName(), fieldMapping.getObfType().toString())); + } - for (FieldMapping fieldMapping : sorted(classMapping.fields())) { - jsonClass.addField(new JsonField(fieldMapping.getObfName(), fieldMapping.getDeobfName(), fieldMapping.getObfType().toString())); + for (MethodMapping methodMapping : sorted(classMapping.methods())) { + List args = new ArrayList<>(); + for (ArgumentMapping argumentMapping : sorted(methodMapping.arguments())) { + args.add(new JsonArgument(argumentMapping.getIndex(), argumentMapping.getName())); } - - for (MethodMapping methodMapping : sorted(classMapping.methods())) { - List args = new ArrayList<>(); - for (ArgumentMapping argumentMapping : sorted(methodMapping.arguments())) { - args.add(new JsonArgument(argumentMapping.getIndex(), argumentMapping.getName())); - } - if (methodMapping.getObfName().contains("") || methodMapping.getObfName().contains("")) { - jsonClass.addConstructor(new JsonConstructor(methodMapping.getObfSignature().toString(), args, methodMapping.getObfName().contains(""))); - } else { - jsonClass.addMethod(new JsonMethod(methodMapping.getObfName(), methodMapping.getDeobfName(), methodMapping.getObfSignature().toString(), args)); - } + if (methodMapping.getObfName().contains("") || methodMapping.getObfName().contains("")) { + jsonClass.addConstructor(new JsonConstructor(methodMapping.getObfSignature().toString(), args, methodMapping.getObfName().contains(""))); + } else { + jsonClass.addMethod(new JsonMethod(methodMapping.getObfName(), methodMapping.getDeobfName(), methodMapping.getObfSignature().toString(), args)); } } } -- cgit v1.2.3