Project

General

Profile

1
package eu.dnetlib.msro.workflows.nodes.dedup;
2

    
3
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
4
import eu.dnetlib.msro.workflows.graph.Arc;
5
import eu.dnetlib.msro.workflows.nodes.blackboard.BlackboardWorkflowJobListener;
6
import eu.dnetlib.msro.workflows.nodes.dedup.utils.DedupConfigurationOrchestration;
7
import eu.dnetlib.msro.workflows.procs.Token;
8
import org.apache.commons.collections.CollectionUtils;
9
import org.apache.commons.logging.Log;
10
import org.apache.commons.logging.LogFactory;
11

    
12
public class DedupDuplicateScanJobNode extends DedupConfigurationAwareJobNode {
13

    
14
	private static final Log log = LogFactory.getLog(DedupDuplicateScanJobNode.class); // NOPMD by marko on 11/24/08 5:02 PM
15

    
16
	@Override
17
	protected BlackboardWorkflowJobListener generateBlackboardListener(final Token token) {
18
		return new DedupBlackboardWorkflowJobListener(token);
19
	}
20

    
21
	private class DedupBlackboardWorkflowJobListener extends BlackboardWorkflowJobListener {
22

    
23
		public DedupBlackboardWorkflowJobListener(final Token token) {
24
			super(token);
25
		}
26

    
27
		@Override
28
		protected void onDone(final BlackboardJob job) {
29

    
30
			final DedupConfigurationOrchestration confs = getDedupConfigurationOrchestration();
31

    
32
			confs.getConfigurations().poll();
33

    
34
			log.info("checking dedup configs queue, size: " + confs.getConfigurations().size());
35

    
36
			if (CollectionUtils.isEmpty(confs.getConfigurations())) {
37
				log.info("dedup similarity scan done");
38

    
39
				getToken().release("done");
40
			} else {
41
				log.debug("remaining confs: " + confs);
42

    
43
				getToken().release(Arc.DEFAULT_ARC);
44
			}
45
		}
46
	}
47

    
48
}
(6-6/13)