Revision 53105
Added by Michele Artini over 5 years ago
modules/dnet-grid-application/trunk/src/main/java/eu/dnetlib/grid/process/utils/GridUtils.java | ||
---|---|---|
4 | 4 |
import java.io.FileNotFoundException; |
5 | 5 |
import java.io.InputStream; |
6 | 6 |
import java.util.ArrayList; |
7 |
import java.util.HashSet; |
|
7 | 8 |
import java.util.List; |
8 | 9 |
import java.util.Map; |
9 | 10 |
import java.util.Set; |
... | ... | |
59 | 60 |
|
60 | 61 |
final String gridId = org.getId(); |
61 | 62 |
final String parent = findParentName(org, parents); |
62 |
final String mainName = calculateName(parent, org.getName());
|
|
63 |
final String mainName = applyPrefix(parent, org.getName());
|
|
63 | 64 |
final String shortName = findShortName(org); |
64 | 65 |
final String mainOpenaireId = calculateOpenaireId(ds.getPrefix(), gridId, mainName); |
66 |
final Set<String> alternativeNames = calculateAlternativeNames(org); |
|
65 | 67 |
|
66 |
final Map<String, String> orgNames = calculateAlternativeNames(parent, org)
|
|
67 |
.stream()
|
|
68 |
final Map<String, String> orgNames = alternativeNames.stream()
|
|
69 |
.map(s -> applyPrefix(parent, s))
|
|
68 | 70 |
.collect(Collectors.toMap( |
69 | 71 |
s -> calculateOpenaireId(ds.getPrefix(), gridId, s), |
70 | 72 |
s -> s)); |
... | ... | |
94 | 96 |
shortName, |
95 | 97 |
org.getLinks().stream().findFirst().orElse(""), |
96 | 98 |
country, |
97 |
e.getKey().equals(mainOpenaireId) ? org.getAcronyms() : new ArrayList<>(),
|
|
99 |
e.getKey().equals(mainOpenaireId) ? alternativeNames : new HashSet<>(),
|
|
98 | 100 |
orgNames.keySet(), |
99 | 101 |
collectedFrom)) |
100 | 102 |
.flatMap(l -> l.stream()) |
... | ... | |
107 | 109 |
final String shortName, |
108 | 110 |
final String url, |
109 | 111 |
final Qualifier country, |
110 |
final List<String> acronyms,
|
|
112 |
final Set<String> alternativeNames,
|
|
111 | 113 |
final Set<String> orgRels, |
112 | 114 |
final KeyValue collectedFrom) { |
113 | 115 |
|
... | ... | |
127 | 129 |
.setLegalname(StringField.newBuilder().setValue(name)) |
128 | 130 |
.setLegalshortname(StringField.newBuilder().setValue(shortName)) |
129 | 131 |
.setWebsiteurl(StringField.newBuilder().setValue(url)) |
130 |
.addAllAlternativeNames(acronyms.stream().map(a -> StringField.newBuilder().setValue(a).build()).collect(Collectors.toList())) |
|
132 |
.addAllAlternativeNames( |
|
133 |
alternativeNames.stream().map(a -> StringField.newBuilder().setValue(a).build()).collect(Collectors.toList())) |
|
131 | 134 |
.setCountry(country))); |
132 | 135 |
|
133 | 136 |
// Relations |
... | ... | |
168 | 171 |
return String.format("20|%s::%s", prefix, Hashing.md5(gridId + " " + name)); |
169 | 172 |
} |
170 | 173 |
|
171 |
private static String calculateName(final String parent, final String simpleName) {
|
|
174 |
private static String applyPrefix(final String parent, final String simpleName) {
|
|
172 | 175 |
return StringUtils.isBlank(parent) ? simpleName : parent + " - " + simpleName; |
173 | 176 |
} |
174 | 177 |
|
175 |
private static Set<String> calculateAlternativeNames(final String parent, final GridOrganization org) {
|
|
176 |
final Set<String> res = org.getAcronyms().stream()
|
|
177 |
.map(s -> calculateName(parent, s))
|
|
178 |
private static Set<String> calculateAlternativeNames(final GridOrganization org) { |
|
179 |
final Set<String> res = org.getLabels().stream()
|
|
180 |
.map(GridLabel::getLabel)
|
|
178 | 181 |
.collect(Collectors.toSet()); |
179 |
res.addAll(org.getLabels().stream() |
|
180 |
.map(GridLabel::getLabel) |
|
181 |
.map(s -> calculateName(parent, s)) |
|
182 |
.collect(Collectors.toSet())); |
|
182 |
res.addAll(org.getAcronyms()); |
|
183 | 183 |
return res; |
184 | 184 |
} |
185 | 185 |
|
Also available in: Unified diff