Revision 53102
Added by Michele Artini over 5 years ago
GridUtils.java | ||
---|---|---|
28 | 28 |
import eu.dnetlib.data.proto.RelTypeProtos.RelType; |
29 | 29 |
import eu.dnetlib.data.proto.RelTypeProtos.SubRelType; |
30 | 30 |
import eu.dnetlib.data.proto.TypeProtos.Type; |
31 |
import eu.dnetlib.grid.process.model.GridLabel; |
|
31 | 32 |
import eu.dnetlib.grid.process.model.GridOrganization; |
33 |
import eu.dnetlib.grid.process.model.GridRel; |
|
32 | 34 |
import eu.dnetlib.grid.process.model.GridResponse; |
33 | 35 |
import eu.dnetlib.miscutils.datetime.DateUtils; |
34 | 36 |
import eu.dnetlib.miscutils.functional.hash.Hashing; |
... | ... | |
56 | 58 |
public static List<Oaf> toProtos(final GridOrganization org, final Map<String, String> parents, final Datasource ds) { |
57 | 59 |
|
58 | 60 |
final String gridId = org.getId(); |
59 |
final String parent = parents.get(gridId);
|
|
61 |
final String parent = findParentName(org, parents);
|
|
60 | 62 |
final String mainName = calculateName(parent, org.getName()); |
61 | 63 |
final String shortName = findShortName(org); |
62 | 64 |
final String mainOpenaireId = calculateOpenaireId(ds.getPrefix(), gridId, mainName); |
63 | 65 |
|
64 |
final Map<String, String> orgNames = calculateNames(parent, org.getAcronyms())
|
|
66 |
final Map<String, String> orgNames = calculateAlternativeNames(parent, org)
|
|
65 | 67 |
.stream() |
66 | 68 |
.collect(Collectors.toMap( |
67 | 69 |
s -> calculateOpenaireId(ds.getPrefix(), gridId, s), |
... | ... | |
170 | 172 |
return StringUtils.isBlank(parent) ? simpleName : parent + " - " + simpleName; |
171 | 173 |
} |
172 | 174 |
|
173 |
private static Set<String> calculateNames(final String parent, final List<String> list) {
|
|
174 |
return list.stream()
|
|
175 |
private static Set<String> calculateAlternativeNames(final String parent, final GridOrganization org) {
|
|
176 |
final Set<String> res = org.getAcronyms().stream()
|
|
175 | 177 |
.map(s -> calculateName(parent, s)) |
176 | 178 |
.collect(Collectors.toSet()); |
179 |
res.addAll(org.getLabels().stream() |
|
180 |
.map(GridLabel::getLabel) |
|
181 |
.map(s -> calculateName(parent, s)) |
|
182 |
.collect(Collectors.toSet())); |
|
183 |
return res; |
|
177 | 184 |
} |
178 | 185 |
|
179 | 186 |
public static String findShortName(final GridOrganization org) { |
180 | 187 |
return org.getAcronyms() |
181 | 188 |
.stream() |
182 | 189 |
.filter(StringUtils::isNotBlank) |
183 |
.filter(s -> s.length() < 10) |
|
184 |
.filter(s -> s.equals(s.toUpperCase())) |
|
185 | 190 |
.findFirst() |
186 | 191 |
.orElse(org.getName()); |
192 |
} |
|
187 | 193 |
|
194 |
private static String findParentName(final GridOrganization org, final Map<String, String> parents) { |
|
195 |
return org.getRelationships() |
|
196 |
.stream() |
|
197 |
.filter(r -> r.getType().equalsIgnoreCase("Parent")) |
|
198 |
.map(GridRel::getId) |
|
199 |
.map(parents::get) |
|
200 |
.filter(StringUtils::isNotBlank) |
|
201 |
.findFirst() |
|
202 |
.orElse(null); |
|
188 | 203 |
} |
189 | 204 |
} |
Also available in: Unified diff