@Override public ProcessingItem[] process(final CompileContext context, final ProcessingItem[] items) { context.getProgressIndicator().setText(myValidator.getProgressIndicatorText()); final List<ProcessingItem> processedItems = new ArrayList<ProcessingItem>(); final List<LocalInspectionTool> inspections = new ArrayList<LocalInspectionTool>(); for (final Class aClass : myValidator.getInspectionToolClasses(context)) { try { inspections.add((LocalInspectionTool) aClass.newInstance()); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new Error(e); } } for (int i = 0; i < items.length; i++) { final MyValidatorProcessingItem item = (MyValidatorProcessingItem) items[i]; context.getProgressIndicator().checkCanceled(); context.getProgressIndicator().setFraction((double) i / items.length); try { ourCompilationThreads.set(Boolean.TRUE); if (checkFile(inspections, item, context)) { processedItems.add(item); } } finally { ourCompilationThreads.set(Boolean.FALSE); } } return processedItems.toArray(new ProcessingItem[processedItems.size()]); }
@Override public GenerationItem[] generate( final CompileContext context, final GenerationItem[] items, final VirtualFile outputRootDirectory) { if (items == null || items.length <= 0) { return EMPTY_GENERATION_ITEM_ARRAY; } context.getProgressIndicator().setText("Compiling RenderScript files..."); final GenerationItem[] generationItems = doGenerate(context, items, outputRootDirectory); final Set<VirtualFile> generatedVFiles = new HashSet<VirtualFile>(); final HashSet<VirtualFile> visited = new HashSet<VirtualFile>(); outputRootDirectory.refresh(false, true); AndroidUtils.collectFiles(outputRootDirectory, visited, generatedVFiles); if (context instanceof CompileContextEx) { ((CompileContextEx) context).markGenerated(generatedVFiles); } return generationItems; }