Project

General

Profile

1
package eu.dnetlib.data.collector.plugins.parthenos.ehri;
2

    
3
import java.io.IOException;
4
import java.net.URL;
5
import java.util.Iterator;
6

    
7
import eu.dnetlib.data.collector.ThreadSafeIterator;
8
import eu.dnetlib.rmi.data.CollectorServiceRuntimeException;
9
import org.apache.commons.io.IOUtils;
10
import org.apache.commons.logging.Log;
11
import org.apache.commons.logging.LogFactory;
12

    
13
/**
14
 * Created by Alessia Bardi on 03/05/2017.
15
 *
16
 * @author Alessia Bardi
17
 */
18
public class EHRIIterator extends ThreadSafeIterator {
19

    
20
	private static final Log log = LogFactory.getLog(EHRIIterator.class);
21
	private Iterator<String> identifiers;
22
	private String baseUrl;
23
	private String suffix;
24

    
25
	public EHRIIterator(final Iterator<String> idIterator, final String baseUrl, final String suffix){
26
		this.identifiers = idIterator;
27
		this.baseUrl = baseUrl;
28
		this.suffix = suffix;
29
	}
30

    
31
	@Override
32
	public boolean doHasNext() {
33
		return identifiers.hasNext();
34
	}
35

    
36
	@Override
37
	public String doNext()  {
38
		String target = baseUrl+"/"+identifiers.next()+"/"+suffix;
39
		log.debug("Getting "+target);
40
		try {
41
			URL url = new URL(target);
42
			return IOUtils.toString(url, "UTF-8");
43
		} catch (IOException e) {
44
			throw new CollectorServiceRuntimeException("Unable to get "+target, e);
45
		}
46
	}
47

    
48
	public Iterator<String> getIdentifiers() {
49
		return identifiers;
50
	}
51

    
52
	public void setIdentifiers(final Iterator<String> identifiers) {
53
		this.identifiers = identifiers;
54
	}
55

    
56
	public String getBaseUrl() {
57
		return baseUrl;
58
	}
59

    
60
	public void setBaseUrl(final String baseUrl) {
61
		this.baseUrl = baseUrl;
62
	}
63

    
64
	public String getSuffix() {
65
		return suffix;
66
	}
67

    
68
	public void setSuffix(final String suffix) {
69
		this.suffix = suffix;
70
	}
71
}
(3-3/4)