Project

General

Profile

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

    
3
import org.apache.commons.collections.CollectionUtils;
4
import org.apache.commons.logging.Log;
5
import org.apache.commons.logging.LogFactory;
6

    
7
import com.googlecode.sarasvati.Arc;
8
import com.googlecode.sarasvati.Engine;
9
import com.googlecode.sarasvati.NodeToken;
10

    
11
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
12
import eu.dnetlib.msro.workflows.dedup.conf.DedupConfigurationOrchestration;
13
import eu.dnetlib.msro.workflows.nodes.blackboard.BlackboardWorkflowJobListener;
14

    
15
public class DedupDuplicateScanJobNode extends DedupConfigurationAwareJobNode {
16

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

    
19
	private class DedupBlackboardWorkflowJobListener extends BlackboardWorkflowJobListener {
20

    
21
		public DedupBlackboardWorkflowJobListener(final Engine engine, final NodeToken token) {
22
			super(engine, token);
23
		}
24

    
25
		@Override
26
		protected void onDone(final BlackboardJob job) {
27

    
28
			final DedupConfigurationOrchestration confs = dedupConfigurations(getToken());
29

    
30
			confs.getConfigurations().poll();
31

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

    
34
			if (CollectionUtils.isEmpty(confs.getConfigurations())) {
35
				log.info("dedup similarity scan done");
36
				super.complete(job, "done");
37
			} else {
38
				log.debug("remaining confs: " + confs);
39

    
40
				getToken().getEnv().setAttribute(getDedupConfigSequenceParam(), confs.toString());
41

    
42
				super.complete(job, Arc.DEFAULT_ARC);
43
			}
44
		}
45
	}
46

    
47
	@Override
48
	protected BlackboardWorkflowJobListener generateBlackboardListener(final Engine engine, final NodeToken token) {
49
		return new DedupBlackboardWorkflowJobListener(engine, token);
50
	}
51

    
52
}
(6-6/11)