Project

General

Profile

1 26600 sandro.lab
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.tools.blackboard.BlackboardJob;
10
import eu.dnetlib.msro.workflows.nodes.BlackboardJobNode;
11
import eu.dnetlib.msro.workflows.nodes.ProgressJobNode;
12
import eu.dnetlib.msro.workflows.resultset.ProcessCountingResultSetFactory;
13
import eu.dnetlib.msro.workflows.util.ProgressProvider;
14
import eu.dnetlib.msro.workflows.util.ResultsetProgressProvider;
15
16
public class UpdateDbJobNode extends BlackboardJobNode implements ProgressJobNode {
17
18
	private String db;
19
	private String dbParam;
20
	private String eprParam;
21
	private ProcessCountingResultSetFactory processCountingResultSetFactory;
22
	private ResultsetProgressProvider progressProvider;
23
24
	private static final Log log = LogFactory.getLog(UpdateDbJobNode.class);
25
26
	@Override
27
	protected String getXqueryForServiceId(final NodeToken token) {
28
		return "for $x in collection('/db/DRIVER/ServiceResources/DatabaseServiceResourceType') " + "return $x//RESOURCE_IDENTIFIER/@value/string()";
29
	}
30
31
	@Override
32
	protected void prepareJob(final BlackboardJob job, final NodeToken token) throws Exception {
33
		if ((db == null) || db.isEmpty()) {
34
			db = token.getEnv().getAttribute(getDbParam());
35
		}
36
37
		log.info("preparing blackboard job to update DB: " + db);
38
39
		final String epr = token.getEnv().getAttribute(getEprParam());
40
41
		this.progressProvider = processCountingResultSetFactory.createProgressProvider(token.getProcess(), epr);
42
43
		job.setAction("IMPORT");
44
		job.getParameters().put("db", db);
45
		job.getParameters().put("epr", this.progressProvider.getEpr().toString());
46
	}
47
48
	@Override
49
	public ProgressProvider getProgressProvider() {
50
		return progressProvider;
51
	}
52
53
	public String getDb() {
54
		return db;
55
	}
56
57
	public void setDb(final String db) {
58
		this.db = db;
59
	}
60
61
	public String getEprParam() {
62
		return eprParam;
63
	}
64
65
	public void setEprParam(final String eprParam) {
66
		this.eprParam = eprParam;
67
	}
68
69
	public ProcessCountingResultSetFactory getProcessCountingResultSetFactory() {
70
		return processCountingResultSetFactory;
71
	}
72
73
	@Required
74
	public void setProcessCountingResultSetFactory(final ProcessCountingResultSetFactory processCountingResultSetFactory) {
75
		this.processCountingResultSetFactory = processCountingResultSetFactory;
76
	}
77
78
	public String getDbParam() {
79
		return dbParam;
80
	}
81
82
	public void setDbParam(final String dbParam) {
83
		this.dbParam = dbParam;
84
	}
85
}