@SuppressWarnings("unchecked") public static <T> ProgressTracker<T> getNoOpProgressTracker() { return (ProgressTracker<T>) (NO_OP_PROGRESS_TRACKER == null ? NO_OP_PROGRESS_TRACKER = new DefaultProgressTracker<>(new NoOpProgressCallback<>()) : NO_OP_PROGRESS_TRACKER); }
private static <T> void doProcess(ProgressTracker<T> tracker, TrackedProcessor processor, Iterable<T> i) throws Exception { for(T o : i) { tracker.processing(o); processor.process(o); tracker.processed(o); } tracker.complete(); }
@Override public void processing(T item) { this.item = item; callback.processing(this); }
@Override public String processingContent(ProgressTracker<PackageRuntime> tracker) { return String.format("%s of %s (%s%%)", tracker.getProcessedVolume(), tracker.getTotalVolume(), ((double) Math.round(tracker.getProgress() * 10)) / 10); }
public DefaultProgressTracker(ProgressCallback<T> callback) { this.callback = callback; this.pulsePct = callback.getProgressPulsePct(); if(pulsePct > 100) { throw new IllegalArgumentException("The argument was not expected to be bigger than 100 but was " + pulsePct); } setMinPulseMs(callback.getMinPulseIntervalMs()); setMaxPulseMs(callback.getMaxPulseIntervalMs()); }
@Override public void pulse(ProgressTracker<T> tracker) { for (int i = processedVolume; i < tracker.getProcessedVolume(); ++i) { recap(tracker, i + 1, processedItems.get(i)); } processedVolume = (int) tracker.getProcessedVolume(); doPulse(tracker); }
@Override public void complete(ProgressTracker<T> tracker) { if(processedVolume > 0 && processedVolume < tracker.getProcessedVolume()) { while (processedVolume < tracker.getProcessedVolume()) { recap(tracker, processedVolume + 1, processedItems.get(processedVolume++)); } } processedItems.clear(); processedVolume = 0; doComplete(tracker); }
public static void main(String[] args) throws Exception { DefaultProgressTracker<Long> tracker = new DefaultProgressTracker<>(new ProgressCallback<Long>() { @Override public long getProgressPulsePct() { trackVolume(totalVolume, tracker); trackFlow(totalVolume, tracker);
@Override public void processed(ProgressTracker<T> tracker) { processedItems.add(tracker.getItem()); }
public void setProgressCallback(String id, ProgressCallback<?> callback) { if (callback == null) { progressTrackers.remove(id); } else { progressTrackers.put(id, new DefaultProgressTracker<>(callback)); } }
@Override public void starting(ProgressTracker<T> tracker) { processedItems.clear(); processedVolume = 0; doStart(tracker); }
@Override public String processingContent(ProgressTracker<PackageRuntime> tracker) { return String.format("%s of %s (%s%%)", tracker.getProcessedVolume(), tracker.getTotalVolume(), ((double) Math.round(tracker.getProgress() * 10)) / 10); }
public static ProgressTracker<FPID> newFindTracker(PmCommandInvocation invoc) { FindTracker findTracker = new FindTracker(invoc.getPmSession()); findTracker.commandStart(invoc); ProgressTracker<FPID> tracker = new DefaultProgressTracker<>(findTracker); return tracker; } }
@Override protected String processingContent(ProgressTracker<ProducerSpec> tracker) { return session.getExposedLocation(null, tracker.getItem().getLocation()).toString(); }
@Override protected String processingContent(ProgressTracker<FPID> tracker) { return session.getExposedLocation(null, tracker.getItem().getLocation()).toString(); }