Project

General

Profile

1
package gr.uoa.di.web.utils;
2

    
3
import java.util.Locale;
4
import java.util.Map;
5
import java.util.TreeMap;
6

    
7
import org.apache.log4j.Logger;
8

    
9
import eu.dnetlib.domain.functionality.DocumentField;
10
import eu.dnetlib.domain.functionality.Searchable;
11
import eu.dnetlib.domain.functionality.SearchableDate;
12

    
13
public class LocaleDescriptionUtil {
14
	
15
	public static final Logger logger = Logger.getLogger(LocaleDescriptionUtil.class);
16
	
17
	public static String getFieldDescription(Map<Locale, String> descriptionMap, Locale locale) {
18
		if (descriptionMap != null) {
19
			String description = descriptionMap.get(locale);			
20
			if (description == null) {
21
				return descriptionMap.get(new Locale("en", "GB"));
22
			}
23
			
24
			return description;
25
		}
26
		
27
		return null;
28
		
29
	}
30
	
31
	public static String getSecondaryLink(DocumentField field, Locale locale) {
32
		Map<Locale, String> descriptionMap = field.getSecondaryLinkMap();
33
		if (descriptionMap != null) {
34
			String description = descriptionMap.get(locale);			
35
			if (description == null) {
36
				return descriptionMap.get(new Locale("en", "GB"));
37
			}
38
			
39
			return description;
40
		}
41
		
42
		return null;
43
	}
44
	
45
	public static String getSearchableDescription(Searchable searchable, Locale locale) {
46
		Map<Locale, String> descriptionMap = searchable.getDescriptionMap();
47
		if (descriptionMap != null) {
48
			String description = searchable.getDescriptionMap().get(locale);			
49
			if (description == null) {
50
				return descriptionMap.get(new Locale("en", "GB"));
51
			}
52
			
53
			return description;
54
		}
55
		
56
		return null;
57
	}
58
	
59
	public static String getDescription(Map<Locale, String> descriptionMap, Locale locale) {		
60
		String description = descriptionMap.get(locale);			
61
		if (description == null) {
62
			return descriptionMap.get(new Locale("en", "GB"));
63
		}
64
		
65
		return description;
66
	}
67

    
68
	public static TreeMap<Integer, String> getPeriodBack(SearchableDate searchableDate, Locale locale) {		
69
		TreeMap<Integer, Map<Locale, String>> periodBackMap = searchableDate.getPeriodBackMap();		
70
		TreeMap<Integer, String> periodBack = new TreeMap<Integer, String>();
71
		
72
		for (Integer integer:periodBackMap.keySet()){
73
			String description = periodBackMap.get(integer).get(locale);
74
			if (description == null) {
75
				description = periodBackMap.get(integer).get(new Locale("en", "GB"));
76
			}
77
			periodBack.put(integer, description);
78
		}
79

    
80
		return periodBack;
81
	}
82
	
83
	public static long[] getRanges(SearchableDate searchableDate, Locale locale){
84
		if (getPeriodBack(searchableDate, locale).values() == null || 
85
				getPeriodBack(searchableDate, locale).values().isEmpty()) {
86
			return null;
87
		}
88
		
89
		long[] ranges = new long[getPeriodBack(searchableDate, locale).keySet().size()];
90
		int i = 0;
91
		for (Integer range:getPeriodBack(searchableDate, locale).keySet()){
92
			ranges[i] = range;
93
			i++;
94
		}
95
		return ranges;
96
	}
97
}
(5-5/7)