Project

General

Profile

« Previous | Next » 

Revision 53070

View differences:

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