001package co.codewizards.cloudstore.core.progress; 002 003import java.security.InvalidParameterException; 004 005/** 006 * Abstract base class for wrapper implementations of {@link ProgressMonitor}s. 007 * <p> 008 * You can have a look at {@link SubProgressMonitor} as an example. 009 * 010 * @author Marius Heinzmann [marius<at>NightLabs<dot>de] 011 */ 012public abstract class ProgressMonitorDelegator implements ProgressMonitor 013{ 014 private final ProgressMonitor monitor; 015 016 public ProgressMonitorDelegator(ProgressMonitor monitor) { 017 if (monitor == null) 018 throw new InvalidParameterException("The wrapped monitor must not be null!"); 019 020 this.monitor = monitor; 021 } 022 023 @Override 024 public void beginTask(String name, int totalWork) { 025 monitor.beginTask(name, totalWork); 026 } 027 028 @Override 029 public void done() { 030 monitor.done(); 031 } 032 033 @Override 034 public void internalWorked(double worked) { 035 monitor.internalWorked(worked); 036 } 037 038 @Override 039 public boolean isCanceled() { 040 return monitor.isCanceled(); 041 } 042 043 @Override 044 public void setCanceled(boolean canceled) { 045 monitor.setCanceled(canceled); 046 } 047 048 @Override 049 public void setTaskName(String name) { 050 monitor.setTaskName(name); 051 } 052 053 @Override 054 public void subTask(String name) { 055 monitor.subTask(name); 056 } 057 058 @Override 059 public void worked(int work) { 060 monitor.worked(work); 061 } 062 063}