Project

General

Profile

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

    
3

    
4
import eu.dnetlib.enabling.resultset.factory.ResultSetFactory;
5
import eu.dnetlib.enabling.tools.DnetStreamSupport;
6
import eu.dnetlib.msro.workflows.graph.Arc;
7
import eu.dnetlib.msro.workflows.nodes.SimpleJobNode;
8
import eu.dnetlib.msro.workflows.procs.Env;
9
import eu.dnetlib.pid.resolver.mdstore.plugin.ResolverSerializer;
10
import eu.dnetlib.pid.resolver.store.ResolverStore;
11
import eu.dnetlib.rmi.common.ResultSet;
12
import org.apache.commons.logging.Log;
13
import org.apache.commons.logging.LogFactory;
14
import org.springframework.beans.factory.annotation.Autowired;
15

    
16
/**
17
 * Created by sandro on 10/11/16.
18
 */
19
public class FilterResolvedRecordJobNode extends SimpleJobNode {
20

    
21
	private static final Log log = LogFactory.getLog(FilterResolvedRecordJobNode.class);
22

    
23
	private final static String recordTemplate =
24
			"<root xmlns:oaf=\"http://namespace.dnet.eu/oaf\" xmlns:dri=\"http://www.driver-repository.eu/namespace/dri\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">%s</root>";
25

    
26
	private String type;
27

    
28
	private String eprParam;
29

    
30
	@Autowired
31
	private ResolverStore resolverStore;
32

    
33
	@Autowired
34
	private ResultSetFactory resultSetFactory;
35

    
36
	@Autowired
37
    private ResolverSerializer resolverSerializer;
38

    
39
	@Override
40
	protected String execute(final Env env) throws Exception {
41
		final Iterable<String> resultIterator = DnetStreamSupport.generateStreamFromIterator(resolverStore.getAllRecords(type).iterator())
42
				.map(record -> String.format(recordTemplate, resolverSerializer.serializeToXML(record)))::iterator;
43
		final ResultSet<String> resultSet = resultSetFactory.createResultSet(resultIterator);
44
		env.setAttribute(eprParam, resultSet);
45
		return Arc.DEFAULT_ARC;
46
	}
47

    
48
	public String getType() {
49
		return type;
50
	}
51

    
52
	public void setType(final String type) {
53
		this.type = type;
54
	}
55

    
56
	public String getEprParam() {
57
		return eprParam;
58
	}
59

    
60
	public void setEprParam(final String eprParam) {
61
		this.eprParam = eprParam;
62
	}
63
}
(2-2/2)