Project

General

Profile

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

    
3
import java.io.BufferedInputStream;
4

    
5
import eu.dnetlib.miscutils.iterators.xml.XMLIterator;
6
import eu.dnetlib.rmi.data.CollectorServiceException;
7
import eu.dnetlib.rmi.data.InterfaceDescriptor;
8
import eu.dnetlib.rmi.data.plugin.AbstractCollectorPlugin;
9
import org.apache.commons.lang3.StringUtils;
10

    
11
public abstract class AbstractSplittedRecordPlugin extends AbstractCollectorPlugin {
12

    
13
	@Override
14
	public Iterable<String> collect(final InterfaceDescriptor interfaceDescriptor, final String fromDate, final String untilDate)
15
			throws CollectorServiceException {
16
		final String baseUrl = interfaceDescriptor.getBaseUrl();
17
		final String element = interfaceDescriptor.getParams().get("splitOnElement");
18

    
19
		if (StringUtils.isBlank(baseUrl)) { throw new CollectorServiceException("Param 'baseurl' is null or empty"); }
20

    
21
		if (StringUtils.isBlank(element)) { throw new CollectorServiceException("Param 'splitOnElement' is null or empty"); }
22

    
23
		final BufferedInputStream bis = getBufferedInputStream(baseUrl);
24

    
25
		return () -> new XMLIterator(element, bis);
26
	}
27

    
28
	abstract protected BufferedInputStream getBufferedInputStream(final String baseUrl) throws CollectorServiceException;
29

    
30
}
(1-1/7)