From 6032f55ede3c1b550cfd83b2f768926c992d9a98 Mon Sep 17 00:00:00 2001 From: Thog Date: Fri, 12 Aug 2016 19:59:54 +0200 Subject: Remoe JSON directory format support and clean up others things --- src/main/java/cuchaz/enigma/mapping/Mappings.java | 2 +- .../cuchaz/enigma/mapping/MappingsJsonReader.java | 120 --------------------- .../cuchaz/enigma/mapping/MappingsJsonWriter.java | 101 ----------------- 3 files changed, 1 insertion(+), 222 deletions(-) delete mode 100644 src/main/java/cuchaz/enigma/mapping/MappingsJsonReader.java delete mode 100644 src/main/java/cuchaz/enigma/mapping/MappingsJsonWriter.java (limited to 'src/main/java/cuchaz/enigma/mapping') diff --git a/src/main/java/cuchaz/enigma/mapping/Mappings.java b/src/main/java/cuchaz/enigma/mapping/Mappings.java index 1f4ca02..538c67e 100644 --- a/src/main/java/cuchaz/enigma/mapping/Mappings.java +++ b/src/main/java/cuchaz/enigma/mapping/Mappings.java @@ -160,6 +160,6 @@ public class Mappings { public enum FormatType { - JSON_DIRECTORY, ENIGMA_FILE, ENIGMA_DIRECTORY, SRG_FILE + ENIGMA_FILE, ENIGMA_DIRECTORY, SRG_FILE } } diff --git a/src/main/java/cuchaz/enigma/mapping/MappingsJsonReader.java b/src/main/java/cuchaz/enigma/mapping/MappingsJsonReader.java deleted file mode 100644 index 8f5bde3..0000000 --- a/src/main/java/cuchaz/enigma/mapping/MappingsJsonReader.java +++ /dev/null @@ -1,120 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 Jeff Martin. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser General Public - * License v3.0 which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl.html - *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.mapping;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.Files;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-
-import java.io.*;
-
-import cuchaz.enigma.json.JsonClass;
-import cuchaz.enigma.throwables.MappingConflict;
-
-public class MappingsJsonReader {
-
- public Mappings read(File in) throws IOException {
- Mappings mappings = new Mappings(Mappings.FormatType.JSON_DIRECTORY);
- readDirectory(mappings, in);
- return mappings;
- }
-
- public void readDirectory(Mappings mappings, File in) throws IOException {
- File[] fList = in.listFiles();
- if (fList != null) {
- for (File file : fList) {
- if (file.isFile() && Files.getFileExtension(file.getName()).equalsIgnoreCase("json")) {
- readFile(mappings, new BufferedReader(new InputStreamReader(new FileInputStream(file),
- Charsets.UTF_8)));
- } else if (file.isDirectory()) {
- readDirectory(mappings, file.getAbsoluteFile());
- }
- }
- }
- }
-
- public void readFile(Mappings mappings, BufferedReader in) throws IOException {
- StringBuilder buf = new StringBuilder();
- String line;
- while ((line = in.readLine()) != null) {
- buf.append(line);
- }
-
- Gson gson = new GsonBuilder().setPrettyPrinting().create();
- JsonClass jsonClass = gson.fromJson(buf.toString(), JsonClass.class);
- try {
- load(null, jsonClass, mappings);
- } catch (MappingConflict e) {
- e.printStackTrace();
- }
- in.close();
- }
-
- public void load(ClassMapping parent, JsonClass jsonClass, Mappings mappings) throws MappingConflict {
- ClassMapping classMapping = readClass(jsonClass.getObf(), jsonClass.getName());
- if (parent != null) {
- parent.addInnerClassMapping(classMapping);
- } else {
- mappings.addClassMapping(classMapping);
- }
- jsonClass.getField().forEach(jsonField -> classMapping.addFieldMapping(readField(jsonField.getObf(), jsonField.getName(), jsonField.getType())));
-
- jsonClass.getConstructors().forEach(jsonConstructor -> {
- MethodMapping methodMapping = readMethod(jsonConstructor.isStatics() ? "
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.mapping;
-
-import com.google.common.base.Charsets;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import cuchaz.enigma.json.*;
-
-public class MappingsJsonWriter {
-
- public void write(File file, Mappings mappings) throws IOException {
- if (!file.isDirectory()) {
- return;
- }
-
- String[] entries = file.list();
- for (String s : entries) {
- File currentFile = new File(file.getPath(), s);
- deleteDirectory(currentFile);
- }
-
- Gson gson = new GsonBuilder().setPrettyPrinting().create();
- for (ClassMapping classMapping : sorted(mappings.classes())) {
- 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();
- PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(f), Charsets.UTF_8));
- writer.write(gson.toJson(jsonClass));
- writer.close();
- }
- }
- }
-
- private void write(JsonClass jsonClass, ClassMapping classMapping) {
- 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 (MethodMapping methodMapping : sorted(classMapping.methods())) {
- List