Project

General

Profile

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

    
3
import java.io.StringReader;
4

    
5
import javax.annotation.Resource;
6
import javax.xml.ws.wsaddressing.W3CEndpointReference;
7

    
8
import org.apache.commons.lang3.StringUtils;
9
import org.dom4j.Document;
10
import org.dom4j.Node;
11
import org.dom4j.io.SAXReader;
12

    
13
import com.googlecode.sarasvati.Arc;
14
import com.googlecode.sarasvati.NodeToken;
15

    
16
import eu.dnetlib.data.collector.rmi.CollectorService;
17
import eu.dnetlib.data.collector.rmi.InterfaceDescriptor;
18
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
19
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
20
import eu.dnetlib.msro.workflows.nodes.SimpleJobNode;
21

    
22
public class DateRangeCollectRecordsJobNode extends SimpleJobNode {
23

    
24
	@Resource
25
	private UniqueServiceLocator serviceLocator;
26

    
27
	private String datasourceId;
28
	private String datasourceInterface;
29
	private String eprParam;
30
	private String fromDateParam;
31
	private String untilDateParam;
32
	private String overrideFrom;
33
	private String overrideUntil;
34

    
35
	@Override
36
	protected String execute(final NodeToken token) throws Exception {
37
		final String profile = serviceLocator.getService(ISLookUpService.class).getResourceProfile(datasourceId);
38
		final Document doc = new SAXReader().read(new StringReader(profile));
39
		final Node ifcNode = doc.selectSingleNode("//INTERFACE[@id='" + datasourceInterface + "']");
40
		final String fromDate = StringUtils.isNoneBlank(overrideFrom) ? overrideFrom : token.getEnv().getAttribute(getFromDateParam());
41
		final String untilDate = StringUtils.isNoneBlank(overrideUntil) ? overrideUntil :token.getEnv().getAttribute(getUntilDateParam());
42

    
43
		final InterfaceDescriptor interfaceDescriptor = InterfaceDescriptor.newInstance(ifcNode);
44

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

    
47
		token.getEnv().setAttribute(getEprParam(), epr.toString());
48

    
49
		return Arc.DEFAULT_ARC;
50
	}
51

    
52
	public String getFromDateParam() {
53
		return fromDateParam;
54
	}
55

    
56
	public void setFromDateParam(final String fromDateParam) {
57
		this.fromDateParam = fromDateParam;
58
	}
59

    
60
	public String getUntilDateParam() {
61
		return untilDateParam;
62
	}
63

    
64
	public void setUntilDateParam(final String untilDateParam) {
65
		this.untilDateParam = untilDateParam;
66
	}
67

    
68
	public String getDatasourceId() {
69
		return datasourceId;
70
	}
71

    
72
	public void setDatasourceId(final String datasourceId) {
73
		this.datasourceId = datasourceId;
74
	}
75

    
76
	public String getDatasourceInterface() {
77
		return datasourceInterface;
78
	}
79

    
80
	public void setDatasourceInterface(final String datasourceInterface) {
81
		this.datasourceInterface = datasourceInterface;
82
	}
83

    
84
	public String getEprParam() {
85
		return eprParam;
86
	}
87

    
88
	public void setEprParam(final String eprParam) {
89
		this.eprParam = eprParam;
90
	}
91

    
92
	public String getOverrideFrom() {
93
		return overrideFrom;
94
	}
95

    
96
	public void setOverrideFrom(String overrideFrom) {
97
		this.overrideFrom = overrideFrom;
98
	}
99

    
100
	public String getOverrideUntil() {
101
		return overrideUntil;
102
	}
103

    
104
	public void setOverrideUntil(String overrideUntil) {
105
		this.overrideUntil = overrideUntil;
106
	}
107
}
(2-2/3)