Project

General

Profile

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

    
3
import java.util.Map;
4

    
5
import eu.dnetlib.data.mdstore.MDStoreService;
6
import eu.dnetlib.enabling.resultset.rmi.ResultSetException;
7
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
8
import eu.dnetlib.msro.workflows.nodes.BlackboardJobNode;
9
import eu.dnetlib.msro.workflows.nodes.ProgressJobNode;
10
import eu.dnetlib.msro.workflows.nodes.blackboard.BlackboardWorkflowJobListener;
11
import eu.dnetlib.msro.workflows.procs.Env;
12
import eu.dnetlib.msro.workflows.procs.ProcessAware;
13
import eu.dnetlib.msro.workflows.procs.Token;
14
import eu.dnetlib.msro.workflows.procs.WorkflowProcess;
15
import eu.dnetlib.msro.workflows.resultset.ProcessCountingResultSetFactory;
16
import eu.dnetlib.msro.workflows.util.ProgressProvider;
17
import eu.dnetlib.msro.workflows.util.ResultsetProgressProvider;
18
import eu.dnetlib.msro.workflows.util.WorkflowsConstants;
19
import org.apache.commons.logging.Log;
20
import org.apache.commons.logging.LogFactory;
21
import org.springframework.beans.factory.annotation.Required;
22

    
23
public class StoreMDStoreRecordsJobNode extends BlackboardJobNode implements ProgressJobNode, ProcessAware {
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
	private WorkflowProcess process;
33

    
34
	@Override
35
	protected String obtainServiceId(final Env env) {
36
		return getServiceLocator().getServiceId(MDStoreService.class, mdId);
37
	}
38

    
39
	@Override
40
	protected void prepareJob(final BlackboardJob job, final Env env) throws ResultSetException {
41
		job.setAction("FEED");
42

    
43
		final String eprS = env.getAttribute(getEprParam(), String.class);
44

    
45
		this.progressProvider = processCountingResultSetFactory.createProgressProvider(process, eprS);
46

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

    
52
	@Override
53
	protected BlackboardWorkflowJobListener generateBlackboardListener(final Token token) {
54
		return new BlackboardWorkflowJobListener(token) {
55

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

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

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

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

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

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

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

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

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

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

    
102
	@Override
103
	public void setProcess(final WorkflowProcess process) {
104
		this.process = process;
105
	}
106
}
(5-5/5)