Project

General

Profile

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

    
3

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

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

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

    
24
	private final static String recordTemplate =
25
			"<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>";
26

    
27
	private String type;
28

    
29
	private String eprParam;
30

    
31
	@Autowired
32
	private ResolverStore resolverStore;
33

    
34
	@Autowired
35
	private ResultSetFactory resultSetFactory;
36

    
37
	@Autowired
38
	private ResolverSerializer resolverSerializer;
39

    
40
	@Override
41
	protected String execute(final Env env) throws Exception {
42

    
43
		log.info("HERE");
44

    
45
		final Iterable<String> resultIterator = () -> DnetStreamSupport.generateStreamFromIterator(resolverStore.getAllRecords().iterator())
46
				.map(record -> {
47
					final ObjectType type = record.getType();
48
                    if (type == null || !type.toString().equals(this.type)) {
49
                        return "<JUNK/>";
50
                    }
51
                    final String resultXML = String.format(recordTemplate, resolverSerializer.serializeToXML((DLIResolvedObject) record));
52
                    return resultXML;
53
				}).iterator();
54

    
55
		final ResultSet<String> resultSet = resultSetFactory.createResultSet(resultIterator);
56

    
57
		env.setAttribute(eprParam, resultSet);
58
		return Arc.DEFAULT_ARC;
59
	}
60

    
61
	public String getType() {
62
		return type;
63
	}
64

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

    
69
	public String getEprParam() {
70
		return eprParam;
71
	}
72

    
73
	public void setEprParam(final String eprParam) {
74
		this.eprParam = eprParam;
75
	}
76
}
(4-4/5)