Project

General

Profile

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

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

    
7
import com.googlecode.sarasvati.NodeToken;
8

    
9
import eu.dnetlib.enabling.database.rmi.DatabaseService;
10
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
11
import eu.dnetlib.msro.workflows.nodes.BlackboardJobNode;
12
import eu.dnetlib.msro.workflows.nodes.ProgressJobNode;
13
import eu.dnetlib.msro.workflows.resultset.ProcessCountingResultSetFactory;
14
import eu.dnetlib.msro.workflows.util.ProgressProvider;
15
import eu.dnetlib.msro.workflows.util.ResultsetProgressProvider;
16

    
17
public class UpdateDbJobNode extends BlackboardJobNode implements ProgressJobNode {
18

    
19
	private String db;
20
	private String dbParam;
21
	private String eprParam;
22
	private ProcessCountingResultSetFactory processCountingResultSetFactory;
23
	private ResultsetProgressProvider progressProvider;
24

    
25
	private static final Log log = LogFactory.getLog(UpdateDbJobNode.class);
26

    
27
	@Override
28
	protected String obtainServiceId(final NodeToken token) {
29
		return getServiceLocator().getServiceId(DatabaseService.class);
30
	}
31

    
32
	@Override
33
	protected void prepareJob(final BlackboardJob job, final NodeToken token) throws Exception {
34
		if (db == null || db.isEmpty()) {
35
			db = token.getEnv().getAttribute(getDbParam());
36
		}
37

    
38
		log.info("preparing blackboard job to update DB: " + db);
39

    
40
		final String epr = token.getEnv().getAttribute(getEprParam());
41

    
42
		this.progressProvider = processCountingResultSetFactory.createProgressProvider(token.getProcess(), epr);
43

    
44
		job.setAction("IMPORT");
45
		job.getParameters().put("db", db);
46
		job.getParameters().put("epr", this.progressProvider.getEpr().toString());
47
	}
48

    
49
	@Override
50
	public ProgressProvider getProgressProvider() {
51
		return progressProvider;
52
	}
53

    
54
	public String getDb() {
55
		return db;
56
	}
57

    
58
	public void setDb(final String db) {
59
		this.db = db;
60
	}
61

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

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

    
70
	public ProcessCountingResultSetFactory getProcessCountingResultSetFactory() {
71
		return processCountingResultSetFactory;
72
	}
73

    
74
	@Required
75
	public void setProcessCountingResultSetFactory(final ProcessCountingResultSetFactory processCountingResultSetFactory) {
76
		this.processCountingResultSetFactory = processCountingResultSetFactory;
77
	}
78

    
79
	public String getDbParam() {
80
		return dbParam;
81
	}
82

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

    
87
}
(4-4/4)