@Override public String getFullName() { return parent.getFullName() + "." + getName(); }
/** * Get the complete list of classes */ public List<JavaClass> getClasses() { return decompiler.getClasses(); }
public JavaClass getJavaClass() { JavaClass parent = node.getDeclaringClass(); if (parent == null && node instanceof JavaClass) { return (JavaClass) node; } return parent; }
public void load() { reset(); JadxArgsValidator.validate(args); init(); LOG.info("loading ..."); loadFiles(args.getInputFiles()); root = new RootNode(args); root.load(inputFiles); root.initClassPath(); root.loadResources(getResources()); initVisitors(); }
protected void enableDeobfuscation() { args.setDeobfuscationOn(true); args.setDeobfuscationForceSave(true); args.setDeobfuscationMinLength(2); args.setDeobfuscationMaxLength(64); }
@Nullable public CodePosition getDefinitionPosition(JavaNode javaNode) { JavaClass jCls = javaNode.getTopParentClass(); jCls.decompile(); int defLine = javaNode.getDecompiledLine(); if (defLine == 0) { return null; } return new CodePosition(jCls, defLine, 0); }
private void processAll(JadxDecompiler jadx) { for (JavaClass javaClass : jadx.getClasses()) { javaClass.decompile(); } }
public void save() { save(!args.isSkipSources(), !args.isSkipResources()); }
public ExecutorService getSaveExecutor() { return getSaveExecutor(!args.isSkipSources(), !args.isSkipResources()); }
private void addEntry(List<ResourceFile> list, File zipFile, ZipEntry entry) { if (entry.isDirectory()) { return; } String name = entry.getName(); ResourceType type = ResourceType.getFileType(name); ResourceFile rf = ResourceFile.createResourceFile(jadxRef, name, type); if (rf != null) { rf.setZipRef(new ZipRef(zipFile, name)); list.add(rf); } }
@Override public String toString() { return "jadx decompiler " + getVersion(); } }
public List<JavaClass> getInnerClasses() { decompile(); return innerClasses; }
@Override public String toString() { return getFullName(); } }
public synchronized void decompile() { if (decompiler == null) { return; } if (cls.getCode() == null) { decompiler.processClass(cls); load(); } }
@Override public boolean equals(Object o) { return this == o || o instanceof JField && field.equals(((JField) o).field); } }
private JadxDecompiler getRootDecompiler() { if (parent != null) { return parent.getRootDecompiler(); } return decompiler; }
@Override public boolean equals(Object o) { return this == o || o instanceof JMethod && mth.equals(((JMethod) o).mth); } }
@Override public int hashCode() { return field.hashCode(); }
@Override public JavaClass getTopParentClass() { return parent.getTopParentClass(); }
@Override public String makeLongString() { return cls.getFullName(); } }