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.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
}
(3-3/3)