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}