Project

General

Profile

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

    
3
import java.io.StringReader;
4
import javax.annotation.Resource;
5
import javax.xml.ws.wsaddressing.W3CEndpointReference;
6

    
7
import eu.dnetlib.data.collector.rmi.CollectorService;
8
import eu.dnetlib.data.collector.rmi.InterfaceDescriptor;
9
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
10
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
11
import eu.dnetlib.msro.workflows.graph.Arc;
12
import eu.dnetlib.msro.workflows.nodes.SimpleJobNode;
13
import eu.dnetlib.msro.workflows.procs.Env;
14
import org.dom4j.Document;
15
import org.dom4j.Node;
16
import org.dom4j.io.SAXReader;
17

    
18
public class DateRangeCollectRecordsJobNode extends SimpleJobNode {
19

    
20
	@Resource
21
	private UniqueServiceLocator serviceLocator;
22

    
23
	private String datasourceId;
24
	private String datasourceInterface;
25
	private String eprParam;
26
	private String fromDateParam;
27
	private String untilDateParam;
28

    
29
	@Override
30
	protected String execute(final Env env) throws Exception {
31
		final String profile = serviceLocator.getService(ISLookUpService.class).getResourceProfile(datasourceId);
32
		final Document doc = new SAXReader().read(new StringReader(profile));
33
		final Node ifcNode = doc.selectSingleNode("//INTERFACE[@id='" + datasourceInterface + "']");
34
		final String fromDate = env.getAttribute(getFromDateParam(), String.class);
35
		final String untilDate = env.getAttribute(getUntilDateParam(), String.class);
36

    
37
		final InterfaceDescriptor interfaceDescriptor = InterfaceDescriptor.newInstance(ifcNode);
38

    
39
		final W3CEndpointReference epr = serviceLocator.getService(CollectorService.class).dateRangeCollect(interfaceDescriptor, fromDate, untilDate);
40

    
41
		env.setAttribute(getEprParam(), epr.toString());
42

    
43
		return Arc.DEFAULT_ARC;
44
	}
45

    
46
	public String getFromDateParam() {
47
		return fromDateParam;
48
	}
49

    
50
	public void setFromDateParam(final String fromDateParam) {
51
		this.fromDateParam = fromDateParam;
52
	}
53

    
54
	public String getUntilDateParam() {
55
		return untilDateParam;
56
	}
57

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

    
62
	public String getDatasourceId() {
63
		return datasourceId;
64
	}
65

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

    
70
	public String getDatasourceInterface() {
71
		return datasourceInterface;
72
	}
73

    
74
	public void setDatasourceInterface(final String datasourceInterface) {
75
		this.datasourceInterface = datasourceInterface;
76
	}
77

    
78
	public String getEprParam() {
79
		return eprParam;
80
	}
81

    
82
	public void setEprParam(final String eprParam) {
83
		this.eprParam = eprParam;
84
	}
85

    
86
}
(2-2/3)