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
|
}
|