Project

General

Profile

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

    
3
import java.util.List;
4
import javax.annotation.Resource;
5

    
6
import com.googlecode.sarasvati.NodeToken;
7
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException;
8
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
9
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
10
import eu.dnetlib.msro.rmi.MSROException;
11
import eu.dnetlib.msro.workflows.nodes.SimpleJobNode;
12
import org.apache.commons.logging.Log;
13
import org.apache.commons.logging.LogFactory;
14
import org.springframework.beans.factory.annotation.Value;
15

    
16
/**
17
 * Superceded by eu.dnetlib.msro.openaireplus.workflows.nodes.index.FindSearchServicesJobNode.
18
 *
19
 * @author claudio, alessia
20
 * @see eu.dnetlib.msro.openaireplus.workflows.nodes.index.FindSearchServicesJobNode
21
 * @deprecated
22
 */
23
@Deprecated
24
public class FindSearchServiceJobNode extends SimpleJobNode {
25

    
26
	/**
27
	 * logger.
28
	 */
29
	private static final Log log = LogFactory.getLog(FindSearchServiceJobNode.class); // NOPMD by marko on 11/24/08 5:02 PM
30

    
31
	@Resource
32
	private UniqueServiceLocator serviceLocator;
33

    
34
	@Value(value = "${dnet.openaire.service.search.lookup.xquery}")
35
	private String xquery;
36

    
37
	private String xqueryForServiceIdParam;
38

    
39
	/**
40
	 * {@inheritDoc}
41
	 *
42
	 * @throws ISLookUpException
43
	 * @throws MSROException
44
	 * @see com.googlecode.sarasvati.mem.MemNode#execute(com.googlecode.sarasvati.Engine, com.googlecode.sarasvati.NodeToken)
45
	 */
46
	@Override
47
	public String execute(final NodeToken token) throws ISLookUpException, MSROException {
48

    
49
		log.info("lookup for search service: " + getXquery());
50

    
51
		List<String> searchServiceIds = serviceLocator.getService(ISLookUpService.class).quickSearchProfile(getXquery());
52

    
53
		if (searchServiceIds.size() > 1) { throw new MSROException("too many search services: " + searchServiceIds); }
54

    
55
		if (searchServiceIds.isEmpty()) {
56
			return "notFound";
57
		} else {
58
			token.getEnv().setAttribute(getXqueryForServiceIdParam(), getXquery());
59
			return "found";
60
		}
61
	}
62

    
63
	public String getXquery() {
64
		return xquery;
65
	}
66

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

    
71
	public String getXqueryForServiceIdParam() {
72
		return xqueryForServiceIdParam;
73
	}
74

    
75
	public void setXqueryForServiceIdParam(final String xqueryForServiceIdParam) {
76
		this.xqueryForServiceIdParam = xqueryForServiceIdParam;
77
	}
78

    
79
}
(5-5/10)