package js.common; /** * Simple implementation of ToolProgressMonitor with output to System.out. */ public class CLIToolProgressMonitor implements ToolProgressMonitor { private boolean _verbose = false; /* * (non-Javadoc) * * @see js.tools.ToolProgressMonitor#operation(java.lang.String) */ public void operation(String message) { assert message != null : "Precondition: message != null"; System.out.println(message); } /* * (non-Javadoc) * * @see js.tools.ToolProgressMonitor#log(java.lang.String) */ public void log(String message) { if (!_verbose) return; assert message != null : "Precondition: message != null"; System.out.println(message); } /* * (non-Javadoc) * * @see js.tools.ToolProgressMonitor#progress(int) */ public void progress(int progress) { assert progress >= 0 && progress <= 1000 : "Precondition: progress >= 0 && progress <= 1000"; String message = "\r " + (progress / 10) + "%\r"; System.out.print(message); if (progress >= 1000) { System.out.println(); } } /* * (non-Javadoc) * * @see js.common.ToolProgressMonitor#isCanceled() */ public boolean isCanceled() { return Thread.currentThread().isInterrupted(); } /** * Be verbose? */ public void setVerbose(boolean verbose) { _verbose = verbose; } }