Project

General

Profile

1 26600 sandro.lab
package eu.dnetlib.msro.workflows.nodes.repohi;
2
3
import java.util.Map;
4
5
import org.apache.commons.logging.Log;
6
import org.apache.commons.logging.LogFactory;
7
8
import com.googlecode.sarasvati.Engine;
9
import com.googlecode.sarasvati.NodeToken;
10
import com.googlecode.sarasvati.env.Env;
11
12
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
13
import eu.dnetlib.msro.workflows.nodes.BlackboardJobNode;
14
import eu.dnetlib.msro.workflows.nodes.blackboard.BlackboardWorkflowJobListener;
15
16
public class CreateObjectStoreJobNode extends BlackboardJobNode {
17
18
	private static final Log log = LogFactory.getLog(CreateObjectStoreJobNode.class);
19
20
21
	private String interpretation;
22
	private String outputPrefix = "objectStore_";
23
24
	@Override
25
	protected String getXqueryForServiceId(NodeToken token) {
26
		return "//RESOURCE_PROFILE[.//RESOURCE_TYPE/@value = 'ObjectStoreServiceResourceType']//RESOURCE_IDENTIFIER/@value/string()";
27
	}
28
29
	@Override
30
	protected void prepareJob(final BlackboardJob job, final NodeToken token) {
31
		log.info("preparing blackboard job for the creation of the objectStore ");
32
        job.setAction("CREATE");
33
        job.getParameters().put("interpretation", interpretation);
34
	}
35
36
37
	public String getInterpretation() {
38
		return interpretation;
39
	}
40
41
	public void setInterpretation(final String interpretation) {
42
		this.interpretation = interpretation;
43
	}
44
45
46
	public String getOutputPrefix() {
47
		return outputPrefix;
48
	}
49
50
	public void setOutputPrefix(String outputPrefix) {
51
		this.outputPrefix = outputPrefix;
52
	}
53
54
	@Override
55
	protected BlackboardWorkflowJobListener generateBlackboardListener(Engine engine, NodeToken token) {
56
		return new BlackboardWorkflowJobListener(engine, token) {
57
			@Override
58
			protected void populateEnv(final Env env, Map<String, String> responseParams) {				;
59
				env.setAttribute(getOutputPrefix() + "interpretation", interpretation);
60
				env.setAttribute(getOutputPrefix() + "id", responseParams.get("objectStoreId"));
61
			}
62
		};
63
	}
64
65
66
67
}