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.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
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
19
import eu.dnetlib.msro.workflows.nodes.SimpleJobNode;
20

    
21
public class CollectRecordsJobNode extends SimpleJobNode {
22

    
23
	@Resource
24
	private UniqueServiceLocator serviceLocator;
25

    
26
	private String datasourceId;
27
	private String datasourceInterface;
28
	private String eprParam;
29

    
30
	@Override
31
	protected String execute(final NodeToken token) throws Exception {
32
		final String profile = serviceLocator.getService(ISLookUpService.class).getResourceProfile(datasourceId);
33
		final Document doc = new SAXReader().read(new StringReader(profile));
34
		final Node ifcNode = doc.selectSingleNode("//INTERFACE[@id='" + datasourceInterface + "']");
35

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

    
38
		final W3CEndpointReference epr = serviceLocator.getService(CollectorService.class).collect(interfaceDescriptor);
39

    
40
		token.getEnv().setAttribute(getEprParam(), epr.toString());
41

    
42
		return Arc.DEFAULT_ARC;
43
	}
44

    
45
	public String getDatasourceId() {
46
		return datasourceId;
47
	}
48

    
49
	public void setDatasourceId(final String datasourceId) {
50
		this.datasourceId = datasourceId;
51
	}
52

    
53
	public String getDatasourceInterface() {
54
		return datasourceInterface;
55
	}
56

    
57
	public void setDatasourceInterface(final String datasourceInterface) {
58
		this.datasourceInterface = datasourceInterface;
59
	}
60

    
61
	public String getEprParam() {
62
		return eprParam;
63
	}
64

    
65
	public void setEprParam(final String eprParam) {
66
		this.eprParam = eprParam;
67
	}
68

    
69
}
(1-1/3)