summaryrefslogtreecommitdiffstats
path: root/src/org/jetbrains/java/decompiler/main/Fernflower.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/jetbrains/java/decompiler/main/Fernflower.java')
-rw-r--r--src/org/jetbrains/java/decompiler/main/Fernflower.java55
1 files changed, 20 insertions, 35 deletions
diff --git a/src/org/jetbrains/java/decompiler/main/Fernflower.java b/src/org/jetbrains/java/decompiler/main/Fernflower.java
index 6d60f6e..67596be 100644
--- a/src/org/jetbrains/java/decompiler/main/Fernflower.java
+++ b/src/org/jetbrains/java/decompiler/main/Fernflower.java
@@ -28,81 +28,66 @@ import org.jetbrains.java.decompiler.struct.lazy.LazyLoader;
import java.io.BufferedWriter;
import java.io.StringWriter;
-import java.util.HashMap;
+import java.util.Map;
public class Fernflower implements IDecompiledData {
- public static final String version = "v0.8.4";
-
- private StructContext structcontext;
-
- private ClassesProcessor clprocessor;
-
- public Fernflower(IBytecodeProvider provider, IDecompilatSaver saver, HashMap<String, Object> propertiesCustom) {
-
- structcontext = new StructContext(saver, this, new LazyLoader(provider));
+ private StructContext structContext;
+ private ClassesProcessor classesProcessor;
+ public Fernflower(IBytecodeProvider provider, IDecompilatSaver saver, Map<String, Object> propertiesCustom) {
+ structContext = new StructContext(saver, this, new LazyLoader(provider));
DecompilerContext.initContext(propertiesCustom);
DecompilerContext.setCounterContainer(new CounterContainer());
}
public void decompileContext() {
-
if (DecompilerContext.getOption(IFernflowerPreferences.RENAME_ENTITIES)) {
- new IdentifierConverter().rename(structcontext);
+ new IdentifierConverter().rename(structContext);
}
- clprocessor = new ClassesProcessor(structcontext);
+ classesProcessor = new ClassesProcessor(structContext);
- DecompilerContext.setClassProcessor(clprocessor);
- DecompilerContext.setStructContext(structcontext);
+ DecompilerContext.setClassProcessor(classesProcessor);
+ DecompilerContext.setStructContext(structContext);
- structcontext.saveContext();
+ structContext.saveContext();
}
public void clearContext() {
DecompilerContext.setCurrentContext(null);
}
- public String getClassEntryName(StructClass cl, String entryname) {
-
- ClassNode node = clprocessor.getMapRootClasses().get(cl.qualifiedName);
+ public String getClassEntryName(StructClass cl, String entryName) {
+ ClassNode node = classesProcessor.getMapRootClasses().get(cl.qualifiedName);
if (node.type != ClassNode.CLASS_ROOT) {
return null;
}
else {
if (DecompilerContext.getOption(IFernflowerPreferences.RENAME_ENTITIES)) {
String simple_classname = cl.qualifiedName.substring(cl.qualifiedName.lastIndexOf('/') + 1);
- return entryname.substring(0, entryname.lastIndexOf('/') + 1) + simple_classname + ".java";
+ return entryName.substring(0, entryName.lastIndexOf('/') + 1) + simple_classname + ".java";
}
else {
- return entryname.substring(0, entryname.lastIndexOf(".class")) + ".java";
+ return entryName.substring(0, entryName.lastIndexOf(".class")) + ".java";
}
}
}
- public StructContext getStructcontext() {
- return structcontext;
+ public StructContext getStructContext() {
+ return structContext;
}
public String getClassContent(StructClass cl) {
-
- String res = null;
-
try {
- StringWriter strwriter = new StringWriter();
- clprocessor.writeClass(structcontext, cl, new BufferedWriter(strwriter));
-
- res = strwriter.toString();
- }
- catch (ThreadDeath ex) {
- throw ex;
+ StringWriter writer = new StringWriter();
+ classesProcessor.writeClass(cl, new BufferedWriter(writer));
+ return writer.toString();
}
catch (Throwable ex) {
DecompilerContext.getLogger().writeMessage("Class " + cl.qualifiedName + " couldn't be fully decompiled.", ex);
+ return null;
}
-
- return res;
}
}