Project

General

Profile

1 35869 claudio.at
package eu.dnetlib.msro.workflows.dedup;
2 35866 claudio.at
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 36632 claudio.at
import eu.dnetlib.msro.workflows.dedup.conf.DedupConfigurationOrchestration;
13 35866 claudio.at
import eu.dnetlib.msro.workflows.nodes.blackboard.BlackboardWorkflowJobListener;
14
15 36240 claudio.at
public class DedupDuplicateScanJobNode extends DedupConfigurationAwareJobNode {
16 35866 claudio.at
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 36632 claudio.at
			final DedupConfigurationOrchestration confs = dedupConfigurations(getToken());
29 35866 claudio.at
30 36632 claudio.at
			confs.getConfigurations().poll();
31 35866 claudio.at
32 36632 claudio.at
			log.info("checking dedup configs queue, size: " + confs.getConfigurations().size());
33 35866 claudio.at
34 36632 claudio.at
			if (CollectionUtils.isEmpty(confs.getConfigurations())) {
35 35866 claudio.at
				log.info("dedup similarity scan done");
36
				super.complete(job, "done");
37
			} else {
38 36630 claudio.at
				log.debug("remaining confs: " + confs);
39 35866 claudio.at
40 36417 claudio.at
				getToken().getEnv().setAttribute(getDedupConfigSequenceParam(), confs.toString());
41 35866 claudio.at
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
}