Project

General

Profile

1
package eu.dnetlib.efg.workflows.nodes;
2

    
3
import java.util.List;
4
import java.util.stream.Collectors;
5
import java.util.stream.Stream;
6

    
7
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
8
import eu.dnetlib.enabling.resultset.client.ResultSetClient;
9
import eu.dnetlib.enabling.resultset.factory.ResultSetFactory;
10
import eu.dnetlib.enabling.tools.DnetStreamSupport;
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 eu.dnetlib.rmi.common.ResultSet;
15
import eu.dnetlib.rmi.data.MDStoreService;
16
import org.dom4j.Namespace;
17
import org.springframework.beans.factory.annotation.Autowired;
18

    
19
/**
20
 * Created by sandro on 5/13/16.
21
 */
22
public class ApplyEFGPatchJobNode extends SimpleJobNode {
23

    
24
	private static final Namespace EFG_NS = new Namespace("efg", "http://www.europeanfilmgateway.eu/efg");
25
	private String inputEprParam;
26
	private String outputEprParam;
27
	private String originalMdStoreId;
28
	@Autowired
29
	private ResultSetFactory resultSetFactory;
30
	@Autowired
31
	private UniqueServiceLocator locator;
32
	@Autowired
33
	private ResultSetClient resultSetClient;
34

    
35
	@Override
36
	protected String execute(final Env env) throws Exception {
37

    
38
		final ResultSet<?> rsIn = env.getAttribute(this.inputEprParam, ResultSet.class);
39

    
40
		final Iterable<String> iter = this.resultSetClient.iter(rsIn, String.class);
41

    
42
		final Stream<String> stringStream = DnetStreamSupport.generateStreamFromIterator(iter.iterator());
43

    
44
		final MDStoreService mdStoreService = locator.getService(MDStoreService.class);
45

    
46
		final List<String> collect = stringStream.map(new ApplyEFGPatchFunction(mdStoreService, originalMdStoreId, EFG_NS)).collect(Collectors.toList());
47

    
48
		final ResultSet<String> outputResultSet = this.resultSetFactory.createResultSet(collect);
49

    
50
		env.setAttribute(getOutputEprParam(), outputResultSet);
51

    
52
		return Arc.DEFAULT_ARC;
53
	}
54

    
55
	public String getInputEprParam() {
56
		return inputEprParam;
57
	}
58

    
59
	public void setInputEprParam(final String inputEprParam) {
60
		this.inputEprParam = inputEprParam;
61
	}
62

    
63
	public String getOutputEprParam() {
64
		return outputEprParam;
65
	}
66

    
67
	public void setOutputEprParam(final String outputEprParam) {
68
		this.outputEprParam = outputEprParam;
69
	}
70

    
71
	public String getOriginalMdStoreId() {
72
		return originalMdStoreId;
73
	}
74

    
75
	public void setOriginalMdStoreId(final String originalMdStoreId) {
76
		this.originalMdStoreId = originalMdStoreId;
77
	}
78
}
(2-2/5)