Project

General

Profile

1
package eu.dnetlib.msro.worker.nodes;
2

    
3
import eu.dnetlib.common.ifaces.ProgressProvider;
4

    
5
public abstract class ProgressBlackboardJobNode<T extends ProgressProvider> extends BlackboardJobNode<T> implements ProgressJobNode {
6

    
7
	private boolean progressInaccurate = true;
8
	private int progressTotal = 0;
9
	private int progressPosition = 0;
10

    
11
	@Override
12
	public void onSuccess(final T t) {
13
		super.onSuccess(t);
14
		this.progressInaccurate = t.isProgressInaccurate();
15
		this.progressTotal = t.getProgressTotal();
16
		this.progressPosition = t.getProgressPosition();
17
	}
18

    
19
	@Override
20
	public void onOngoing(final T t) {
21
		super.onOngoing(t);
22
		this.progressInaccurate = t.isProgressInaccurate();
23
		this.progressTotal = t.getProgressTotal();
24
		this.progressPosition = t.getProgressPosition();
25
	}
26

    
27
	@Override
28
	public ProgressProvider getProgressProvider() {
29
		return new ProgressProvider() {
30

    
31
			@Override
32
			public int getProgressTotal() {
33
				return progressTotal;
34
			}
35

    
36
			@Override
37
			public int getProgressPosition() {
38
				return progressPosition;
39
			}
40

    
41
			@Override
42
			public boolean isProgressInaccurate() {
43
				return progressInaccurate;
44
			}
45

    
46
		};
47
	}
48
}
(3-3/9)