@Override public TeaVMProgressFeedback reportProgress(int progress) { progress = progress * (compileProgressReportLimit - compileProgressReportStart) / 1000 + compileProgressReportStart; return progressListener.progressReached(progress); } };
private void reportProgress(int progress) { if (progressListener.progressReached(progress) == TeaVMProgressFeedback.CANCEL) { cancelled = true; } }
@Override public TeaVMProgressFeedback progressReached(int progress) { return listener != null ? listener.progressReached(progress) : TeaVMProgressFeedback.CONTINUE; }
dependencyAnalyzer.setInterruptor(() -> { int progress = lastKnownClasses > 0 ? dependencyAnalyzer.getReachableClasses().size() : 0; cancelled |= progressListener.progressReached(progress) != TeaVMProgressFeedback.CONTINUE; return !cancelled; });
@SuppressWarnings("WeakerAccess") public ListableClassHolderSource link(DependencyInfo dependency) { reportPhase(TeaVMPhase.LINKING, dependency.getReachableClasses().size()); Linker linker = new Linker(); MutableClassHolderSource cutClasses = new MutableClassHolderSource(); MissingItemsProcessor missingItemsProcessor = new MissingItemsProcessor(dependency, diagnostics); if (wasCancelled()) { return cutClasses; } int index = 0; for (String className : dependency.getReachableClasses()) { ClassReader clsReader = dependency.getClassSource().get(className); if (clsReader == null) { continue; } ClassHolder cls = ModelUtils.copyClass(clsReader); cutClasses.putClassHolder(cls); missingItemsProcessor.processClass(cls); linker.link(dependency, cls); progressListener.progressReached(++index); } return cutClasses; }
dependencyChecker.setInterruptor(() -> progressListener.progressReached(0) == TeaVMProgressFeedback.CONTINUE); target.contributeDependencies(dependencyChecker); dependencyChecker.processDependencies();