|
4 | 4 | import org.jetbrains.java.decompiler.main.decompiler.BaseDecompiler; |
5 | 5 | import org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler; |
6 | 6 | import org.jetbrains.java.decompiler.main.decompiler.PrintStreamLogger; |
7 | | -import org.jetbrains.java.decompiler.main.extern.IBytecodeProvider; |
8 | 7 | import org.jetbrains.java.decompiler.main.extern.IResultSaver; |
9 | 8 | import org.objectweb.asm.tree.ClassNode; |
10 | 9 | import org.objectweb.asm.tree.InnerClassNode; |
|
14 | 13 | import the.bytecode.club.jda.settings.Setting; |
15 | 14 |
|
16 | 15 | import java.io.File; |
17 | | -import java.io.IOException; |
18 | 16 | import java.nio.file.Files; |
19 | 17 | import java.nio.file.Path; |
20 | 18 | import java.util.HashMap; |
21 | 19 | import java.util.Map; |
22 | 20 | import java.util.concurrent.atomic.AtomicReference; |
23 | 21 | import java.util.jar.Manifest; |
24 | 22 |
|
| 23 | +import static org.jetbrains.java.decompiler.main.extern.IFernflowerPreferences.*; |
| 24 | + |
25 | 25 | /** |
26 | 26 | * A FernFlower wrapper with all the options (except 2) |
27 | 27 | * |
|
31 | 31 |
|
32 | 32 | public final class FernflowerDecompiler extends JDADecompiler { |
33 | 33 | public FernflowerDecompiler() { |
34 | | - settings.registerSetting(new SettingsEntry("rbr", "Hide Bridge Methods", true)); |
35 | | - settings.registerSetting(new SettingsEntry("rsy", "Hide Synthetic Class Members", false)); |
36 | | - settings.registerSetting(new SettingsEntry("din", "Decompile Inner Classes", true)); |
37 | | - settings.registerSetting(new SettingsEntry("dc4", "Collapse 1.4 Class References", true)); |
38 | | - settings.registerSetting(new SettingsEntry("das", "Decompile Assertions", true)); |
39 | | - settings.registerSetting(new SettingsEntry("hes", "Hide Empty Super Invocation", true)); |
40 | | - settings.registerSetting(new SettingsEntry("hec", "Hide Empty Default Constructor", true)); |
41 | | - settings.registerSetting(new SettingsEntry("dgs", "Decompile Generic Signatures", false)); |
42 | | - settings.registerSetting(new SettingsEntry("ner", "Assume return not throwing exceptions", true)); |
43 | | - settings.registerSetting(new SettingsEntry("den", "Decompile enumerations", true)); |
44 | | - settings.registerSetting(new SettingsEntry("rgn", "Remove getClass = new SettingsEntry()", true)); |
45 | | - settings.registerSetting(new SettingsEntry("lit", "Output numeric literals 'as-is'", false)); |
46 | | - settings.registerSetting(new SettingsEntry("asc", "Encode non-ASCII as unicode escapes", true)); |
47 | | - settings.registerSetting(new SettingsEntry("bto", "Assume int 1 is boolean true", true)); |
48 | | - settings.registerSetting(new SettingsEntry("nns", "Allow not set synthetic attribute", true)); |
49 | | - settings.registerSetting(new SettingsEntry("uto", "Consider nameless types as java.lang.Object", true)); |
50 | | - settings.registerSetting(new SettingsEntry("udv", "Recover variable names", true)); |
51 | | - settings.registerSetting(new SettingsEntry("rer", "Remove empty exceptions", true)); |
52 | | - settings.registerSetting(new SettingsEntry("fdi", "De-inline finally", true)); |
53 | | - settings.registerSetting(new SettingsEntry("mpm", "Maximum processing time", 0, Setting.SettingType.INT)); // this is a numeric setting! |
54 | | - settings.registerSetting(new SettingsEntry("ren", "Rename ambigious members", false)); |
55 | | - // urc: IIDentifierRenamer |
56 | | - settings.registerSetting(new SettingsEntry("inn", "Remove IntelliJ @NotNull", true)); |
57 | | - settings.registerSetting(new SettingsEntry("lac", "Decompile lambdas to anonymous classes", false)); |
58 | | - // settings.registerSetting(new SettingsEntry("nls", "Newline character")); // this is an optional argument! |
59 | | - settings.registerSetting(new SettingsEntry("ind", "Indentation string", " ", Setting.SettingType.STRING)); |
| 34 | + settings.registerSetting(new SettingsEntry(REMOVE_BRIDGE, "Hide Bridge Methods", false)); |
| 35 | + settings.registerSetting(new SettingsEntry(REMOVE_SYNTHETIC, "Hide Synthetic Class Members", false)); |
| 36 | + settings.registerSetting(new SettingsEntry(DECOMPILE_INNER, "Decompile Inner Classes", true)); |
| 37 | + settings.registerSetting(new SettingsEntry(DECOMPILE_CLASS_1_4, "Collapse 1.4 Class References", true)); |
| 38 | + settings.registerSetting(new SettingsEntry(DECOMPILE_ASSERTIONS, "Decompile Assertions", true)); |
| 39 | + settings.registerSetting(new SettingsEntry(HIDE_EMPTY_SUPER, "Hide Empty Super Invocation", true)); |
| 40 | + settings.registerSetting(new SettingsEntry(HIDE_DEFAULT_CONSTRUCTOR, "Hide Empty Default Constructor", true)); |
| 41 | + settings.registerSetting(new SettingsEntry(DECOMPILE_GENERIC_SIGNATURES, "Decompile Generic Signatures", false)); |
| 42 | + settings.registerSetting(new SettingsEntry(NO_EXCEPTIONS_RETURN, "Assume return not throwing exceptions", true)); |
| 43 | + settings.registerSetting(new SettingsEntry(DECOMPILE_ENUM, "Decompile enumerations", true)); |
| 44 | + settings.registerSetting(new SettingsEntry(REMOVE_GET_CLASS_NEW, "Remove getClass()", true)); |
| 45 | + settings.registerSetting(new SettingsEntry(LITERALS_AS_IS, "Output numeric literals 'as-is'", false)); |
| 46 | + settings.registerSetting(new SettingsEntry(BOOLEAN_TRUE_ONE, "Assume int 1 is boolean true", true)); |
| 47 | + settings.registerSetting(new SettingsEntry(ASCII_STRING_CHARACTERS, "Encode non-ASCII as unicode escapes", true)); |
| 48 | + settings.registerSetting(new SettingsEntry(SYNTHETIC_NOT_SET, "Allow not set synthetic attribute", true)); |
| 49 | + settings.registerSetting(new SettingsEntry(UNDEFINED_PARAM_TYPE_OBJECT, "Consider nameless types as java.lang.Object", true)); |
| 50 | + settings.registerSetting(new SettingsEntry(USE_DEBUG_VAR_NAMES, "Recover variable names", true)); |
| 51 | + settings.registerSetting(new SettingsEntry(REMOVE_EMPTY_RANGES, "Remove empty exceptions", true)); |
| 52 | + settings.registerSetting(new SettingsEntry(FINALLY_DEINLINE, "De-inline finally", true)); |
| 53 | + settings.registerSetting(new SettingsEntry(IDEA_NOT_NULL_ANNOTATION, "Remove IntelliJ @NotNull", true)); |
| 54 | + settings.registerSetting(new SettingsEntry(LAMBDA_TO_ANONYMOUS_CLASS, "Decompile lambdas to anonymous classes", false)); |
| 55 | + settings.registerSetting(new SettingsEntry(MAX_PROCESSING_METHOD, "Maximum processing time", 0, Setting.SettingType.INT)); |
| 56 | + settings.registerSetting(new SettingsEntry(RENAME_ENTITIES, "Rename ambigious members", false)); |
| 57 | + // USER_RENAMER_CLASS IIDentifierRenamer |
| 58 | + // settings.registerSetting(new SettingsEntry(NEW_LINE_SEPARATOR, "Newline character")); // this is an optional argument! |
| 59 | + settings.registerSetting(new SettingsEntry(INDENT_STRING, "Indentation string", " ", Setting.SettingType.STRING)); |
60 | 60 | } |
61 | 61 |
|
62 | 62 | @Override |
|
0 commit comments