Project

General

Profile

1
package eu.dnetlib.openaire.exporter;
2

    
3
import javax.servlet.http.HttpServletRequest;
4

    
5
public class ProjectQueryParamsFactory {
6

    
7
	private static final String BASE_PATH = "/openaire/export/";
8
	private static final String NO_FILTER = "ALL";
9

    
10
	public ProjectQueryParams generateParams(final HttpServletRequest request,
11
			final String startFrom,
12
			final String startUntil,
13
			final String endFrom,
14
			final String endUntil) {
15
		ProjectQueryParams params = new ProjectQueryParams();
16

    
17
		String[] arr = request.getPathInfo().replace(BASE_PATH, "").split("\\/");
18
		if (arr.length != 5) throw new IllegalArgumentException("Invalid url");
19

    
20
		params.setFundingProgramme(arr[0]);
21
		String stream = NO_FILTER.equals(arr[1]) ? null : arr[1];
22
		String substream = NO_FILTER.equals(arr[2]) ? null : arr[2];
23
		if (substream == null) {
24
			params.setFundingPath(stream);
25
		} else {
26
			if (stream == null) {
27
				stream = "%";
28
			}
29
			params.setFundingPath(stream + "::" + substream);
30
		}
31
		// params.setSpecificProgramme(NO_FILTER.equals(arr[1]) ? null : arr[1]);
32
		// params.setSubdivision(NO_FILTER.equals(arr[2]) ? null : arr[2]);
33
		// NB: arr[3] should be 'projects'
34
		// NB: arr[4] should be '[file].do'
35
		params.setStartFrom(startFrom);
36
		params.setStartUntil(startUntil);
37
		params.setEndFrom(endFrom);
38
		params.setEndUntil(endUntil);
39

    
40
		return params;
41
	}
42
}
(3-3/5)