Project

General

Profile

« Previous | Next » 

Revision 53102

View differences:

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