package fr.opensagres.mongodb.ide.launching.internal;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.SubProgressMonitor;
/**
* Progress Monitor utility.
*/
public class ProgressUtil {
/**
* ProgressUtil constructor comment.
*/
private ProgressUtil() {
super();
}
/**
* Return a valid progress monitor.
*
* @param monitor
* org.eclipse.core.runtime.IProgressMonitor
* @return org.eclipse.core.runtime.IProgressMonitor
*/
public static IProgressMonitor getMonitorFor(IProgressMonitor monitor) {
if (monitor == null)
return new NullProgressMonitor();
return monitor;
}
/**
* Return a sub-progress monitor with the given amount on the current
* progress monitor.
*
* @param monitor
* org.eclipse.core.runtime.IProgressMonitor
* @param ticks
* int
* @return org.eclipse.core.runtime.IProgressMonitor
*/
public static IProgressMonitor getSubMonitorFor(IProgressMonitor monitor,
int ticks) {
if (monitor == null)
return new NullProgressMonitor();
if (monitor instanceof NullProgressMonitor)
return monitor;
return new SubProgressMonitor(monitor, ticks);
}
/**
* Return a sub-progress monitor with the given amount on the current
* progress monitor.
*
* @param monitor
* a progress monitor
* @param ticks
* the number of ticks
* @param style
* a style
* @return a progress monitor
*/
public static IProgressMonitor getSubMonitorFor(IProgressMonitor monitor,
int ticks, int style) {
if (monitor == null)
return new NullProgressMonitor();
if (monitor instanceof NullProgressMonitor)
return monitor;
return new SubProgressMonitor(monitor, ticks, style);
}
}