Project

General

Profile

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

    
3
import java.util.Map;
4

    
5
import org.apache.commons.logging.Log;
6
import org.apache.commons.logging.LogFactory;
7
import org.springframework.beans.factory.annotation.Required;
8

    
9
import com.googlecode.sarasvati.Engine;
10
import com.googlecode.sarasvati.NodeToken;
11
import com.googlecode.sarasvati.env.Env;
12

    
13
import eu.dnetlib.enabling.resultset.rmi.ResultSetException;
14
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
15
import eu.dnetlib.msro.workflows.nodes.BlackboardJobNode;
16
import eu.dnetlib.msro.workflows.nodes.ProgressJobNode;
17
import eu.dnetlib.msro.workflows.nodes.blackboard.BlackboardWorkflowJobListener;
18
import eu.dnetlib.msro.workflows.resultset.ProcessCountingResultSetFactory;
19
import eu.dnetlib.msro.workflows.util.ProgressProvider;
20
import eu.dnetlib.msro.workflows.util.ResultsetProgressProvider;
21
import eu.dnetlib.msro.workflows.util.WorkflowsConstants;
22

    
23
public class StoreMDStoreRecordsJobNode extends BlackboardJobNode implements ProgressJobNode {
24

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

    
27
	private String eprParam;
28
	private String mdId;
29
	private String storingType;
30
	private ProcessCountingResultSetFactory processCountingResultSetFactory;
31
	private ResultsetProgressProvider progressProvider;
32

    
33
	@Override
34
	protected String getXqueryForServiceId(final NodeToken token) {
35
		return "//RESOURCE_IDENTIFIER[../RESOURCE_TYPE/@value='MDStoreServiceResourceType']/@value/string()";
36
	}
37

    
38
	@Override
39
	protected void prepareJob(final BlackboardJob job, final NodeToken token) throws ResultSetException {
40
		job.setAction("FEED");
41

    
42
		final String eprS = token.getEnv().getAttribute(getEprParam());
43

    
44
		this.progressProvider = processCountingResultSetFactory.createProgressProvider(token.getProcess(), eprS);
45

    
46
		job.getParameters().put("epr", progressProvider.getEpr().toString());
47
		job.getParameters().put("storingType", getStoringType());
48
		job.getParameters().put("mdId", getMdId());
49
	}
50

    
51
	@Override
52
	protected BlackboardWorkflowJobListener generateBlackboardListener(final Engine engine, final NodeToken token) {
53
		return new BlackboardWorkflowJobListener(engine, token) {
54

    
55
			@Override
56
			protected void populateEnv(final Env env, final Map<String, String> responseParams) {
57
				log.info("Number of stored records: " + responseParams.get("total"));
58
				env.setAttribute(WorkflowsConstants.MAIN_LOG_PREFIX + "total", responseParams.get("total"));
59
			}
60
		};
61
	}
62

    
63
	public String getEprParam() {
64
		return eprParam;
65
	}
66

    
67
	public void setEprParam(final String eprParam) {
68
		this.eprParam = eprParam;
69
	}
70

    
71
	public String getMdId() {
72
		return mdId;
73
	}
74

    
75
	public void setMdId(final String mdId) {
76
		this.mdId = mdId;
77
	}
78

    
79
	public String getStoringType() {
80
		return storingType;
81
	}
82

    
83
	public void setStoringType(final String storingType) {
84
		this.storingType = storingType;
85
	}
86

    
87
	public ProcessCountingResultSetFactory getProcessCountingResultSetFactory() {
88
		return processCountingResultSetFactory;
89
	}
90

    
91
	@Required
92
	public void setProcessCountingResultSetFactory(final ProcessCountingResultSetFactory processCountingResultSetFactory) {
93
		this.processCountingResultSetFactory = processCountingResultSetFactory;
94
	}
95

    
96
	@Override
97
	public ProgressProvider getProgressProvider() {
98
		return progressProvider;
99
	}
100

    
101
}
(4-4/4)