Project

General

Profile

1
package eu.dnetlib.resolver;
2

    
3
import java.util.Arrays;
4

    
5
import eu.dnetlib.resolver.model.CompletionStatus;
6
import eu.dnetlib.resolver.model.ObjectProvenance;
7
import eu.dnetlib.resolver.model.ResolvedObject;
8
import org.springframework.beans.factory.annotation.Autowired;
9

    
10
/**
11
 * Created by sandro on 9/26/16.
12
 */
13
public class NCBINResolver extends AbstractPIDResolver {
14

    
15
	private final static String baseUrl =
16
			"https://www.ncbi.nlm.nih.gov/sviewer/viewer.fcgi?db=nuccore&val=%s&page_size=5&fmt_mask=0&report=gbx&retmode=text&page=1&page_size=1";
17

    
18
	private final static String NCBI_NSPREFIX = "r3d100010778";
19

    
20
	@Autowired
21
	private NCBINParser NCBINParser;
22

    
23
	@Override
24
	protected boolean canResolvePid(final String pidType) {
25
		return pidType != null && (pidType.toLowerCase().equals("protein") || pidType.toLowerCase().equals("ncbi-n"));
26
	}
27

    
28
	@Override
29
	protected ResolvedObject resolve(final String pid, final String pidType) {
30

    
31
		if ((pid == null))
32
			return null;
33
		final ResolvedObject record = NCBINParser.parseRecord(requestURL(String.format(baseUrl, pid)));
34
		if (record != null) {
35
			record.setPid(pid);
36
			record.setPidType(pidType);
37
			record.setCompletionStatus(CompletionStatus.complete.toString());
38
			ObjectProvenance provenance = new ObjectProvenance();
39
			setDatasourceProvenace(provenance, NCBI_NSPREFIX);
40
			record.setDatasourceProvenance(Arrays.asList(provenance));
41
		}
42
		return record;
43
	}
44

    
45
	public NCBINParser getNCBINParser() {
46
		return NCBINParser;
47
	}
48

    
49
	public void setNCBINParser(final NCBINParser NCBINParser) {
50
		this.NCBINParser = NCBINParser;
51
	}
52
}
(7-7/14)