package cz.muni.fi.rtc.teacherWorkbench.importer;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.core.runtime.IProgressMonitor;

/**
 * Progress monitor writing the events to the log on the info level.
 * 
 * @author Jan Stastny
 * 
 */
public class LogProgressMonitor implements IProgressMonitor {

	private Log log = LogFactory.getLog(LogProgressMonitor.class);

	private static LogProgressMonitor instance = new LogProgressMonitor();

	/**
	 * Use {@link #getInstance()} to get singleton instance
	 */
	private LogProgressMonitor() {
	}

	/**
	 * Return singleton instance
	 * 
	 * @return Singleton instance
	 */
	public static LogProgressMonitor getInstance() {
		return instance;
	}

	public void beginTask(String name, int totalWork) {
		print(name);
	}

	public void done() {
	}

	public void internalWorked(double work) {
	}

	public boolean isCanceled() {
		return false;
	}

	public void setCanceled(boolean value) {
	}

	public void setTaskName(String name) {
		print(name);
	}

	public void subTask(String name) {
		print(name);
	}

	public void worked(int work) {
	}

	private void print(String name) {
		if (name != null && !"".equals(name))
			log.info(name);
	}

}