Project

General

Profile

1
package eu.dnetlib.download.plugin;
2

    
3
import java.util.ArrayList;
4
import java.util.List;
5

    
6
import com.google.common.base.Function;
7
import com.google.common.collect.Iterables;
8
import com.google.gson.Gson;
9

    
10
import eu.dnetlib.data.download.rmi.DownloadItem;
11
import eu.dnetlib.data.download.rmi.DownloadPlugin;
12

    
13

    
14
/**
15
 * The Class EasyPDFDownloadPlugin.
16
 */
17
public class EasyPDFDownloadPlugin extends AbstractDownloadPlugin implements DownloadPlugin {
18

    
19
	/*
20
	 * (non-Javadoc)
21
	 *
22
	 * @see eu.dnetlib.data.download.rmi.DownloadPlugin#retrieveUrl(eu.dnetlib.data.download.rmi.DownloadItem)
23
	 */
24
	@Override
25
	public DownloadItem retrieveUrl(final DownloadItem input) {
26
		if (checkOpenAccess(input) == null) return null;
27
		if (input == null) return null;
28
		String url = input.getOriginalUrl();
29

    
30
		if ((url == null) || (url.trim().length() == 0)) return input;
31
		@SuppressWarnings("unchecked")
32
		List<String> urls = new Gson().fromJson(url, ArrayList.class);
33
		if ((urls == null) || (urls.size() == 0)) return input;
34
		for (String s : urls) {
35

    
36
			if (s.trim().endsWith(".pdf")) {
37
				input.setOriginalUrl(s);
38
				input.setUrl(s);
39
				return input;
40
			}
41
		}
42
		input.setOriginalUrl(null);
43
		input.setUrl(null);
44
		return input;
45
	}
46

    
47
	@Override
48
	public Iterable<DownloadItem> retireveUrls(final Iterable<DownloadItem> urls) {
49
		return Iterables.transform(urls, new Function<DownloadItem, DownloadItem>() {
50

    
51
			@Override
52
			public DownloadItem apply(final DownloadItem input) {
53
				return retrieveUrl(input);
54
			}
55
		});
56
	}
57

    
58
	/*
59
	 * (non-Javadoc)
60
	 *
61
	 * @see eu.dnetlib.data.download.rmi.DownloadPlugin#getPluginName()
62
	 */
63
	@Override
64
	public String getPluginName() {
65
		return "easyPDFDownloadPlugin";
66
	}
67

    
68
}
(4-4/8)