Project

General

Profile

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

    
3
import java.io.StringReader;
4

    
5
import javax.xml.ws.wsaddressing.W3CEndpointReference;
6

    
7
import org.dom4j.Document;
8
import org.dom4j.Node;
9
import org.dom4j.io.SAXReader;
10
import org.springframework.beans.factory.annotation.Required;
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
import eu.dnetlib.enabling.tools.ServiceLocator;
19
import eu.dnetlib.msro.workflows.nodes.SimpleJobNode;
20

    
21
public class DateRangeCollectRecordsJobNode extends SimpleJobNode {
22

    
23
	private ServiceLocator<CollectorService> collectorLocator;
24
	private ServiceLocator<ISLookUpService> lookupLocator;
25

    
26
	private String datasourceId;
27
	private String datasourceInterface;
28
	private String eprParam;
29
	private String fromDateParam;
30
	private String untilDateParam;
31
	
32
	@Override
33
	protected String execute(final NodeToken token) throws Exception {
34
		final String profile = lookupLocator.getService().getResourceProfile(datasourceId);
35
		final Document doc = (new SAXReader()).read(new StringReader(profile));
36
		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
		
40
		final InterfaceDescriptor interfaceDescriptor = InterfaceDescriptor.newInstance(ifcNode);
41

    
42
		final W3CEndpointReference epr = collectorLocator.getService().dateRangeCollect(interfaceDescriptor, fromDate, untilDate);
43

    
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
	public void setFromDateParam(String fromDateParam) {
54
		this.fromDateParam = fromDateParam;
55
	}
56

    
57
	public String getUntilDateParam() {
58
		return untilDateParam;
59
	}
60

    
61
	public void setUntilDateParam(String untilDateParam) {
62
		this.untilDateParam = untilDateParam;
63
	}
64

    
65
	public ServiceLocator<CollectorService> getCollectorLocator() {
66
		return collectorLocator;
67
	}
68

    
69
	@Required
70
	public void setCollectorLocator(final ServiceLocator<CollectorService> collectorLocator) {
71
		this.collectorLocator = collectorLocator;
72
	}
73

    
74
	public ServiceLocator<ISLookUpService> getLookupLocator() {
75
		return lookupLocator;
76
	}
77

    
78
	@Required
79
	public void setLookupLocator(final ServiceLocator<ISLookUpService> lookupLocator) {
80
		this.lookupLocator = lookupLocator;
81
	}
82

    
83
	public String getDatasourceId() {
84
		return datasourceId;
85
	}
86

    
87
	public void setDatasourceId(final String datasourceId) {
88
		this.datasourceId = datasourceId;
89
	}
90

    
91
	public String getDatasourceInterface() {
92
		return datasourceInterface;
93
	}
94

    
95
	public void setDatasourceInterface(final String datasourceInterface) {
96
		this.datasourceInterface = datasourceInterface;
97
	}
98

    
99
	public String getEprParam() {
100
		return eprParam;
101
	}
102

    
103
	public void setEprParam(final String eprParam) {
104
		this.eprParam = eprParam;
105
	}
106

    
107
}
(2-2/3)