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(); } }
public void closeFile() { for (OpenFile co : hmap) { int pos = house.indexOfTab(co.name); if (pos >= 0) house.remove(pos); co.close(); } final State oldState = state; Model.this.state = null; if (oldState != null) { Closer.tryClose(oldState); } hmap.clear(); tree.setModel(new DefaultTreeModel(null)); metadataSystem = new MetadataSystem(typeLoader); file = null; treeExpansionState = null; open = false; mainWindow.onFileLoadEnded(file, open); }
DecompilerSettings settings = cloneSettings(); LuytenTypeLoader typeLoader = new LuytenTypeLoader(); MetadataSystem metadataSystem = new MetadataSystem(typeLoader); ITypeLoader jarLoader = new JarTypeLoader(jfile); typeLoader.getTypeLoaders().add(jarLoader);
public static MetadataSystem instance() { if (_instance == null) { synchronized (MetadataSystem.class) { if (_instance == null) { _instance = Fences.orderWrites(new MetadataSystem()); } } } return _instance; }
public static MetadataSystem instance() { if (_instance == null) { synchronized (MetadataSystem.class) { if (_instance == null) { _instance = Fences.orderWrites(new MetadataSystem()); } } } return _instance; }
public static MetadataSystem instance() { if (_instance == null) { synchronized (MetadataSystem.class) { if (_instance == null) { _instance = Fences.orderWrites(new MetadataSystem()); } } } return _instance; }
MetadataSystem metadataSystem = new MetadataSystem(typeLoader); File outputFile = this.decompileType(settings, metadataSystem, typeName); result.addDecompiled(Collections.singletonList(classFilePath.toString()), outputFile.getAbsolutePath());
final MetadataSystem metadataSystem = new MetadataSystem(typeLoader);
final MetadataSystem metadataSystem = new MetadataSystem(typeLoader);
final MetadataSystem metadataSystem = new MetadataSystem(typeLoader);