private void doSaveClassDecompiled(File inFile, File outFile) throws Exception { DecompilerSettings settings = cloneSettings(); LuytenTypeLoader typeLoader = new LuytenTypeLoader(); MetadataSystem metadataSystem = new MetadataSystem(typeLoader); TypeReference type = metadataSystem.lookupType(inFile.getCanonicalPath()); DecompilationOptions decompilationOptions = new DecompilationOptions(); decompilationOptions.setSettings(settings); decompilationOptions.setFullDecompilation(true); boolean isUnicodeEnabled = decompilationOptions.getSettings().isUnicodeOutputEnabled(); TypeDefinition resolvedType = null; if (type == null || ((resolvedType = type.resolve()) == null)) { throw new Exception("Unable to resolve type."); } StringWriter stringwriter = new StringWriter(); PlainTextOutput plainTextOutput = new PlainTextOutput(stringwriter); plainTextOutput.setUnicodeOutputEnabled(isUnicodeEnabled); settings.getLanguage().decompileType(resolvedType, plainTextOutput, decompilationOptions); String decompiledSource = stringwriter.toString(); System.out.println("[SaveAll]: " + inFile.getName() + " -> " + outFile.getName()); try (FileOutputStream fos = new FileOutputStream(outFile); OutputStreamWriter writer = isUnicodeEnabled ? new OutputStreamWriter(fos, "UTF-8") : new OutputStreamWriter(fos); BufferedWriter bw = new BufferedWriter(writer);) { bw.write(decompiledSource); bw.flush(); } }
private void decompileWithoutLinks() { this.invalidateContent(); isNavigationLinksValid = false; textArea.setHyperlinksEnabled(false); StringWriter stringwriter = new StringWriter(); PlainTextOutput plainTextOutput = new PlainTextOutput(stringwriter); plainTextOutput.setUnicodeOutputEnabled(decompilationOptions.getSettings().isUnicodeOutputEnabled()); settings.getLanguage().decompileType(type, plainTextOutput, decompilationOptions); setContentPreserveLastScrollPosition(stringwriter.toString()); this.isContentValid = true; }
PlainTextOutput plainTextOutput = new PlainTextOutput(writer); plainTextOutput.setUnicodeOutputEnabled(isUnicodeEnabled); settings.getLanguage().decompileType(resolvedType, plainTextOutput, decompilationOptions); writer.flush(); } catch (Exception e) {
plainTextOutput.setUnicodeOutputEnabled( decompilationOptions.getSettings().isUnicodeOutputEnabled()); settings.getLanguage().decompileType(resolvedType, plainTextOutput, decompilationOptions); if (search(stringwriter.toString()))
settings.getLanguage().decompileType(type, plainTextOutput, decompilationOptions); textContent = stringwriter.toString(); isSelectionMapsPopulated = true;
public void run() { try { Thread.sleep(500); String internalName = FindBox.class.getName(); TypeReference type = metadataSystem.lookupType(internalName); TypeDefinition resolvedType = null; if ((type == null) || ((resolvedType = type.resolve()) == null)) { return; } StringWriter stringwriter = new StringWriter(); PlainTextOutput plainTextOutput = new PlainTextOutput(stringwriter); plainTextOutput .setUnicodeOutputEnabled(decompilationOptions.getSettings().isUnicodeOutputEnabled()); settings.getLanguage().decompileType(resolvedType, plainTextOutput, decompilationOptions); String decompiledSource = stringwriter.toString(); OpenFile open = new OpenFile(internalName, "*/" + internalName, getTheme(), mainWindow); open.setContent(decompiledSource); JTabbedPane pane = new JTabbedPane(); pane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); pane.addTab("title", open.scrollPane); pane.setSelectedIndex(pane.indexOfTab("title")); } catch (Exception e) { Luyten.showExceptionDialog("Exception!", e); } } }.start();
final TypeDecompilationResults results = settings.getLanguage().decompileType(resolvedType, output, options);
final TypeDecompilationResults results = settings.getLanguage().decompileType(resolvedType, output, options);
settings.getLanguage().decompileType(resolvedType, output, options);
settings.getLanguage().decompileType(resolvedType, output, options);
settings.getLanguage().decompileType(resolvedType, output, options);