Project

General

Profile

1 27347 michele.ar
package eu.dnetlib.msro.workflows.nodes.collect;
2
3
import java.io.StringReader;
4
5 32639 michele.ar
import javax.annotation.Resource;
6 27347 michele.ar
import javax.xml.ws.wsaddressing.W3CEndpointReference;
7
8
import org.dom4j.Document;
9
import org.dom4j.Node;
10
import org.dom4j.io.SAXReader;
11
12
import com.googlecode.sarasvati.Arc;
13
import com.googlecode.sarasvati.NodeToken;
14
15
import eu.dnetlib.data.collector.rmi.CollectorService;
16
import eu.dnetlib.data.collector.rmi.InterfaceDescriptor;
17
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
18 32639 michele.ar
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
19 27347 michele.ar
import eu.dnetlib.msro.workflows.nodes.SimpleJobNode;
20
21
public class DateRangeCollectRecordsJobNode extends SimpleJobNode {
22
23 32639 michele.ar
	@Resource
24
	private UniqueServiceLocator serviceLocator;
25 27347 michele.ar
26
	private String datasourceId;
27
	private String datasourceInterface;
28
	private String eprParam;
29
	private String fromDateParam;
30
	private String untilDateParam;
31 32639 michele.ar
32 27347 michele.ar
	@Override
33
	protected String execute(final NodeToken token) throws Exception {
34 32639 michele.ar
		final String profile = serviceLocator.getService(ISLookUpService.class).getResourceProfile(datasourceId);
35
		final Document doc = new SAXReader().read(new StringReader(profile));
36 27347 michele.ar
		final Node ifcNode = doc.selectSingleNode("//INTERFACE[@id='" + datasourceInterface + "']");
37
		final String fromDate = token.getEnv().getAttribute(getFromDateParam());
38
		final String untilDate = token.getEnv().getAttribute(getUntilDateParam());
39 32639 michele.ar
40 27347 michele.ar
		final InterfaceDescriptor interfaceDescriptor = InterfaceDescriptor.newInstance(ifcNode);
41
42 32639 michele.ar
		final W3CEndpointReference epr = serviceLocator.getService(CollectorService.class).dateRangeCollect(interfaceDescriptor, fromDate, untilDate);
43 27347 michele.ar
44
		token.getEnv().setAttribute(getEprParam(), epr.toString());
45
46
		return Arc.DEFAULT_ARC;
47
	}
48
49
	public String getFromDateParam() {
50
		return fromDateParam;
51
	}
52
53 32639 michele.ar
	public void setFromDateParam(final String fromDateParam) {
54 27347 michele.ar
		this.fromDateParam = fromDateParam;
55
	}
56
57
	public String getUntilDateParam() {
58
		return untilDateParam;
59
	}
60
61 32639 michele.ar
	public void setUntilDateParam(final String untilDateParam) {
62 27347 michele.ar
		this.untilDateParam = untilDateParam;
63
	}
64
65
	public String getDatasourceId() {
66
		return datasourceId;
67
	}
68
69
	public void setDatasourceId(final String datasourceId) {
70
		this.datasourceId = datasourceId;
71
	}
72
73
	public String getDatasourceInterface() {
74
		return datasourceInterface;
75
	}
76
77
	public void setDatasourceInterface(final String datasourceInterface) {
78
		this.datasourceInterface = datasourceInterface;
79
	}
80
81
	public String getEprParam() {
82
		return eprParam;
83
	}
84
85
	public void setEprParam(final String eprParam) {
86
		this.eprParam = eprParam;
87
	}
88
89
}