Project

General

Profile

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

    
3
import java.util.List;
4

    
5
import org.apache.commons.logging.Log;
6
import org.apache.commons.logging.LogFactory;
7
import org.springframework.beans.factory.annotation.Autowired;
8

    
9
import com.google.gson.Gson;
10
import com.googlecode.sarasvati.Arc;
11
import com.googlecode.sarasvati.NodeToken;
12

    
13
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException;
14
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
15
import eu.dnetlib.enabling.tools.ServiceLocator;
16
import eu.dnetlib.msro.workflows.nodes.SimpleJobNode;
17

    
18
public class FetchRelClassesJobNode extends SimpleJobNode {
19

    
20
	private static final Log log = LogFactory.getLog(FetchRelClassesJobNode.class); // NOPMD by marko on 11/24/08 5:02 PM
21

    
22
	private String relClassesProperty;
23

    
24
	private String relClassesName;
25

    
26
	@Autowired
27
	private ServiceLocator<ISLookUpService> lookupLocator;
28

    
29
	@Override
30
	protected String execute(NodeToken token) throws Exception {
31
		String relClasses = new Gson().toJson(fetchRelClasses());
32

    
33
		log.info("loaded relClasses: " + relClasses);
34

    
35
		token.getEnv().setAttribute(getRelClassesName(), relClasses);
36

    
37
		return Arc.DEFAULT_ARC;
38
	}
39

    
40
	private List<String> fetchRelClasses() throws ISLookUpException {
41

    
42
		String xquery = getPropertyFetcher().getProperty(getRelClassesProperty());
43

    
44
		log.info("Loading relClasses with xquery: " + xquery);
45

    
46
		return lookupLocator.getService().quickSearchProfile(xquery);
47
	}
48

    
49
	public String getRelClassesProperty() {
50
		return relClassesProperty;
51
	}
52

    
53
	public void setRelClassesProperty(String relClassesProperty) {
54
		this.relClassesProperty = relClassesProperty;
55
	}
56

    
57
	public String getRelClassesName() {
58
		return relClassesName;
59
	}
60

    
61
	public void setRelClassesName(String relClassesName) {
62
		this.relClassesName = relClassesName;
63
	}
64

    
65
}
(1-1/16)