Revision 53070
Added by Michele Artini over 5 years ago
modules/dnet-grid-application/trunk/src/main/java/eu/dnetlib/grid/process/utils/GridUtils.java | ||
---|---|---|
54 | 54 |
public static List<Oaf> toProtos(final GridOrganization org, final Map<String, String> parents, final Datasource ds) { |
55 | 55 |
|
56 | 56 |
final String gridId = org.getId(); |
57 |
final String shortName = findShortName(org); |
|
58 | 57 |
final String parent = parents.get(gridId); |
59 | 58 |
final String mainName = calculateName(parent, org.getName()); |
60 |
final Set<String> otherNames = calculateNames(parent, org.getAcronyms()); |
|
59 |
final String shortName = findShortName(org); |
|
60 |
final String mainOpenaireId = calculateOpenaireId(ds.getPrefix(), gridId, mainName); |
|
61 | 61 |
|
62 |
final Map<String, String> orgRels = otherNames.stream() |
|
63 |
.collect(Collectors.toMap(s -> calculateOpenaireId(ds.getPrefix(), gridId, s), s -> s)); |
|
64 |
orgRels.put(calculateOpenaireId(ds.getPrefix(), gridId, mainName), mainName); |
|
62 |
final Map<String, String> orgNames = calculateNames(parent, org.getAcronyms()) |
|
63 |
.stream() |
|
64 |
.collect(Collectors.toMap( |
|
65 |
s -> calculateOpenaireId(ds.getPrefix(), gridId, s), |
|
66 |
s -> s)); |
|
67 |
orgNames.put(mainOpenaireId, mainName); |
|
65 | 68 |
|
66 |
final Qualifier.Builder country = org.getAddresses().stream()
|
|
69 |
final Qualifier country = org.getAddresses().stream() |
|
67 | 70 |
.map(addr -> Qualifier.newBuilder() |
68 | 71 |
.setClassid(addr.getCountry_code()) |
69 | 72 |
.setClassname(addr.getCountry()) |
... | ... | |
71 | 74 |
.setSchemename("dnet:countries")) |
72 | 75 |
.filter(q -> StringUtils.isNotBlank(q.getClassid())) |
73 | 76 |
.filter(q -> StringUtils.isNotBlank(q.getClassname())) |
77 |
.map(q -> q.build()) |
|
74 | 78 |
.findFirst() |
75 | 79 |
.orElse(null); |
76 | 80 |
|
77 |
final String url = org.getLinks().stream().findFirst().orElse(""); |
|
81 |
final KeyValue collectedFrom = KeyValue.newBuilder() |
|
82 |
.setKey(ds.getId()) |
|
83 |
.setValue(ds.getName()).build(); |
|
78 | 84 |
|
79 |
final List<Oaf> res = new ArrayList<>(); |
|
85 |
return orgNames.entrySet() |
|
86 |
.stream() |
|
87 |
.map(e -> toProto(e.getKey(), |
|
88 |
gridId, |
|
89 |
e.getValue(), |
|
90 |
shortName, |
|
91 |
org.getLinks().stream().findFirst().orElse(""), |
|
92 |
country, |
|
93 |
e.getKey().equals(mainOpenaireId) ? org.getAcronyms() : new ArrayList<>(), |
|
94 |
orgNames, collectedFrom)) |
|
95 |
.collect(Collectors.toList()); |
|
80 | 96 |
|
81 |
res.add(toProto(gridId, mainName, shortName, url, country, org.getAcronyms(), orgRels, ds)); |
|
82 |
|
|
83 |
res.addAll(otherNames.stream() |
|
84 |
.map(name -> toProto(gridId, name, shortName, url, country, new ArrayList<>(), orgRels, ds)) |
|
85 |
.collect(Collectors.toList())); |
|
86 |
|
|
87 |
return res; |
|
88 | 97 |
} |
89 | 98 |
|
90 |
private static Oaf toProto(final String gridId, |
|
99 |
private static Oaf toProto(final String openaireId, |
|
100 |
final String gridId, |
|
91 | 101 |
final String name, |
92 | 102 |
final String shortName, |
93 | 103 |
final String url, |
94 |
final Qualifier.Builder country,
|
|
104 |
final Qualifier country, |
|
95 | 105 |
final List<String> acronyms, |
96 | 106 |
final Map<String, String> orgRels, |
97 |
final Datasource ds) {
|
|
107 |
final KeyValue collectedFrom) {
|
|
98 | 108 |
|
99 | 109 |
// TODO ADD ALTERNATIVE NAMES AND RELS |
100 | 110 |
|
101 |
final String openaireId = calculateOpenaireId(ds.getPrefix(), gridId, name); |
|
102 |
|
|
103 |
final KeyValue collectedFrom = KeyValue.newBuilder() |
|
104 |
.setKey(ds.getId()) |
|
105 |
.setValue(ds.getName()).build(); |
|
106 |
|
|
107 | 111 |
final OafEntity.Builder entity = OafEntity.newBuilder() |
108 | 112 |
.setId(openaireId) |
109 | 113 |
.addPid(StructuredProperty.newBuilder() |
Also available in: Unified diff