private ExecutorService getSaveExecutor(boolean saveSources, boolean saveResources) { if (root == null) { throw new JadxRuntimeException("No loaded files"); } int threadsCount = args.getThreadsCount(); LOG.debug("processing threads count: {}", threadsCount); LOG.info("processing ..."); ExecutorService executor = Executors.newFixedThreadPool(threadsCount); File sourcesOutDir; File resOutDir; if (args.isExportAsGradleProject()) { ExportGradleProject export = new ExportGradleProject(root, args.getOutDir()); export.init(); sourcesOutDir = export.getSrcOutDir(); resOutDir = export.getResOutDir(); } else { sourcesOutDir = args.getOutDirSrc(); resOutDir = args.getOutDirRes(); } if (saveResources) { appendResourcesSave(executor, resOutDir); } if (saveSources) { appendSourcesSave(executor, sourcesOutDir); } return executor; }