summaryrefslogtreecommitdiffstats
path: root/rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/IUnitOfProgress.java
blob: f7141b1c690cd114ed2783f5e0618949394dbc20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package rba.tool.editor.ui.util.concurrent;

public interface IUnitOfProgress<R, P> {

    public static final Object FAMILY_UNIT_OF_PROGRESS = new Object();

    R exec(P state) throws Exception;

    public static abstract class Void<T> implements IUnitOfProgress<Object, T> {
        @Override
        public final Object exec(T state) throws Exception {
            process(state);
            return null;
        }

        public abstract void process(T state) throws Exception;
    }
}