private OutputStream getDefaultOutputStream() { if (!StringUtilities.isTrue(System.getProperty(DumpGeneratedClassesProperty, "false"))) { return null; } final String outputPathSetting = System.getProperty(GeneratedClassOutputPathProperty); final String outputDirectory = outputPathSetting != null ? PathHelper.getFullPath(outputPathSetting) : PathHelper.getTempPath(); final String outputFile = PathHelper.combine( outputDirectory, getInternalName().replace('/', PathHelper.DirectorySeparator) + ".class" ); final File temp = new File(outputFile); final File parentDirectory = temp.getParentFile(); if (!parentDirectory.exists() && !parentDirectory.mkdirs()) { return null; } try { return new FileOutputStream(temp); } catch (final IOException e) { return null; } }
private OutputStream getDefaultOutputStream() { if (!StringUtilities.isTrue(System.getProperty(DumpGeneratedClassesProperty, "false"))) { return null; } final String outputPathSetting = System.getProperty(GeneratedClassOutputPathProperty); final String outputDirectory = outputPathSetting != null ? PathHelper.getFullPath(outputPathSetting) : PathHelper.getTempPath(); final String outputFile = PathHelper.combine( outputDirectory, getInternalName().replace('/', PathHelper.DirectorySeparator) + ".class" ); final File temp = new File(outputFile); final File parentDirectory = temp.getParentFile(); if (!parentDirectory.exists() && !parentDirectory.mkdirs()) { return null; } try { return new FileOutputStream(temp); } catch (IOException e) { return null; } }
private OutputStream getDefaultOutputStream() { if (!StringUtilities.isTrue(System.getProperty(DumpGeneratedClassesProperty, "false"))) { return null; } final String outputPathSetting = System.getProperty(GeneratedClassOutputPathProperty); final String outputDirectory = outputPathSetting != null ? PathHelper.getFullPath(outputPathSetting) : PathHelper.getTempPath(); final String outputFile = PathHelper.combine( outputDirectory, getInternalName().replace('/', PathHelper.DirectorySeparator) + ".class" ); final File temp = new File(outputFile); final File parentDirectory = temp.getParentFile(); if (!parentDirectory.exists() && !parentDirectory.mkdirs()) { return null; } try { return new FileOutputStream(temp); } catch (IOException e) { return null; } }
/** * Constructs the path from FQCN, validates writability, and creates a writer. */ private static synchronized FileOutputWriter createFileWriter(final TypeDefinition type, final DecompilerSettings settings) throws IOException { final String outputDirectory = settings.getOutputDirectory(); final String fileName = type.getName() + settings.getLanguage().getFileExtension(); final String packageName = type.getPackageName(); // foo.Bar -> foo/Bar.java final String subDir = StringUtils.defaultIfEmpty(packageName, "").replace('.', File.separatorChar); final String outputPath = PathHelper.combine(outputDirectory, subDir, fileName); final File outputFile = new File(outputPath); final File parentDir = outputFile.getParentFile(); if (parentDir != null && !parentDir.exists() && !parentDir.mkdirs()) { throw new IllegalStateException("Could not create directory:" + parentDir); } if (!outputFile.exists() && !outputFile.createNewFile()) { throw new IllegalStateException("Could not create output file: " + outputPath); } return new FileOutputWriter(outputFile, settings); }
/** * Constructs the path from FQCN, validates writability, and creates a writer. */ private static synchronized FileOutputWriter createFileWriter(final TypeDefinition type, final DecompilerSettings settings) throws IOException { final String outputDirectory = settings.getOutputDirectory(); final String fileName = type.getName() + settings.getLanguage().getFileExtension(); final String packageName = type.getPackageName(); // foo.Bar -> foo/Bar.java final String subDir = StringUtils.defaultIfEmpty(packageName, "").replace('.', File.separatorChar); final String outputPath = PathHelper.combine(outputDirectory, subDir, fileName); final File outputFile = new File(outputPath); final File parentDir = outputFile.getParentFile(); if (parentDir != null && !parentDir.exists() && !parentDir.mkdirs()) { throw new IllegalStateException("Could not create directory:" + parentDir); } if (!outputFile.exists() && !outputFile.createNewFile()) { throw new IllegalStateException("Could not create output file: " + outputPath); } return new FileOutputWriter(outputFile, settings); }