@Override public void perform() { File[] libraryFiles = server.getTrackedLibraryFiles(); ArrayList<File> todo = new ArrayList<File>(libraryFiles.length); // Analyze libraries in application directory hierarchies first for (File libFile : libraryFiles) { if (DartCore.getApplicationDirectory(libFile) != null) { server.queueSubTask(new AnalyzeLibraryTask(server, libFile, null)); } else { todo.add(libFile); } } // Then analyze all remaining libraries in the saved context for (File libFile : todo) { server.queueSubTask(new AnalyzeLibraryTask(server, libFile, null)); } }
@Override void perform() { // Parse library files boolean found = false; for (File libFile : server.getTrackedLibraryFiles()) { if (context.getCachedLibrary(libFile) == null) { server.queueSubTask(new ParseLibraryFileTask(server, context, libFile)); found = true; } } if (found) { server.queueSubTask(this); return; } // Analyze all libraries for (File libFile : server.getTrackedLibraryFiles()) { server.queueSubTask(new AnalyzeLibraryTask(server, context, libFile)); } }
@Override void perform() { // Parse the library file Library library = context.getCachedLibrary(libraryFile); if (library == null) { if (!libraryFile.exists()) { return; } server.queueSubTask(new ParseLibraryFileTask(server, context, libraryFile)); server.queueSubTask(this); return; } // Parse the files sourced by the library for (File file : library.getSourceFiles()) { if (library.getCachedUnit(file) == null && file.exists()) { server.queueSubTask(new ParseFileTask(server, context, libraryFile, file)); } } }