refactor: make input plugin api similar to pass plugins
This commit is contained in:
+6
-5
@@ -3,7 +3,6 @@ package jadx.plugins.input.javaconvert;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import jadx.api.plugins.options.OptionDescription;
|
||||
import jadx.api.plugins.options.impl.BaseOptionsParser;
|
||||
@@ -21,12 +20,14 @@ public class JavaConvertOptions extends BaseOptionsParser {
|
||||
private Mode mode = Mode.BOTH;
|
||||
private boolean d8Desugar = false;
|
||||
|
||||
public void apply(Map<String, String> options) {
|
||||
mode = getOption(options, MODE_OPT, name -> Mode.valueOf(name.toUpperCase(Locale.ROOT)), Mode.BOTH);
|
||||
d8Desugar = getBooleanOption(options, D8_DESUGAR_OPT, false);
|
||||
@Override
|
||||
public void parseOptions() {
|
||||
mode = getOption(MODE_OPT, name -> Mode.valueOf(name.toUpperCase(Locale.ROOT)), Mode.BOTH);
|
||||
d8Desugar = getBooleanOption(D8_DESUGAR_OPT, false);
|
||||
}
|
||||
|
||||
public List<OptionDescription> buildOptionsDescriptions() {
|
||||
@Override
|
||||
public List<OptionDescription> getOptionsDescriptions() {
|
||||
return Arrays.asList(
|
||||
new JadxOptionDescription(
|
||||
MODE_OPT,
|
||||
|
||||
+14
-19
@@ -2,17 +2,16 @@ package jadx.plugins.input.javaconvert;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import jadx.api.plugins.JadxPlugin;
|
||||
import jadx.api.plugins.JadxPluginContext;
|
||||
import jadx.api.plugins.JadxPluginInfo;
|
||||
import jadx.api.plugins.input.JadxInputPlugin;
|
||||
import jadx.api.plugins.input.data.ILoadResult;
|
||||
import jadx.api.plugins.input.data.impl.EmptyLoadResult;
|
||||
import jadx.api.plugins.options.JadxPluginOptions;
|
||||
import jadx.api.plugins.options.OptionDescription;
|
||||
import jadx.api.plugins.input.ICodeLoader;
|
||||
import jadx.api.plugins.input.JadxCodeInput;
|
||||
import jadx.api.plugins.input.data.impl.EmptyCodeLoader;
|
||||
import jadx.plugins.input.dex.DexInputPlugin;
|
||||
|
||||
public class JavaConvertPlugin implements JadxInputPlugin, JadxPluginOptions {
|
||||
public class JavaConvertPlugin implements JadxPlugin, JadxCodeInput {
|
||||
|
||||
public static final String PLUGIN_ID = "java-convert";
|
||||
|
||||
@@ -30,22 +29,18 @@ public class JavaConvertPlugin implements JadxInputPlugin, JadxPluginOptions {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ILoadResult loadFiles(List<Path> input) {
|
||||
public void init(JadxPluginContext context) {
|
||||
context.registerOptions(options);
|
||||
context.addCodeInput(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICodeLoader loadFiles(List<Path> input) {
|
||||
ConvertResult result = loader.process(input);
|
||||
if (result.isEmpty()) {
|
||||
result.close();
|
||||
return EmptyLoadResult.INSTANCE;
|
||||
return EmptyCodeLoader.INSTANCE;
|
||||
}
|
||||
return dexInput.loadFiles(result.getConverted(), result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOptions(Map<String, String> options) {
|
||||
this.options.apply(options);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OptionDescription> getOptionsDescriptions() {
|
||||
return this.options.buildOptionsDescriptions();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user