package org.jboss.windup.bootstrap; import java.util.logging.Logger; import org.jboss.windup.exec.WindupProgressMonitor; /** * Implements basic progress monitoring behavior for the Windup command. * * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ public class ConsoleProgressMonitor implements WindupProgressMonitor { private static final Logger LOG = Logger.getLogger(ConsoleProgressMonitor.class.getName()); private int totalWork; private int currentWork; private boolean cancelled; @Override public void beginTask(String name, int totalWork) { this.totalWork = totalWork; String message = String.format("[%d/%d] %s", currentWork, totalWork, name); System.out.println(message); LOG.info(message); } @Override public void done() { } @Override public boolean isCancelled() { return cancelled; } @Override public void setCancelled(boolean cancelled) { this.cancelled = cancelled; } @Override public void setTaskName(String name) { String message = String.format("[%d/%d] \t", currentWork, totalWork, name); System.out.println(message); LOG.info(message); } @Override public void subTask(String subTask) { String message = String.format("[%d/%d] %s", currentWork, totalWork, subTask); if (subTask.endsWith("\r")) { System.out.print(message); } else { System.out.println("\r" + message); } LOG.info(message); } @Override public void worked(int work) { this.currentWork += work; } }