1
|
package eu.dnetlib.clients.data.datasourcemanager.ws;
|
2
|
|
3
|
import java.util.ArrayList;
|
4
|
import java.util.List;
|
5
|
|
6
|
import org.apache.log4j.Logger;
|
7
|
|
8
|
import eu.dnetlib.domain.data.Repository;
|
9
|
import eu.dnetlib.domain.data.RepositoryInterface;
|
10
|
import eu.dnetlib.enabling.datasources.rmi.DatasourceDesc;
|
11
|
import eu.dnetlib.enabling.datasources.rmi.IfaceDesc;
|
12
|
|
13
|
public class Converter {
|
14
|
|
15
|
private static Logger logger = Logger.getLogger(Converter.class);
|
16
|
|
17
|
public static Repository convertToValRepo(DatasourceDesc from) {
|
18
|
logger.debug("Converting the repository to Validator format");
|
19
|
Repository repo = new Repository();
|
20
|
repo.setId(from.getId());
|
21
|
repo.setOfficialName(from.getOfficialName());
|
22
|
repo.setEnglishName(from.getEnglishName());
|
23
|
repo.setWebsiteUrl(from.getWebsiteUrl());
|
24
|
repo.setLogoUrl(from.getLogoUrl());
|
25
|
repo.setContactEmail(from.getContactEmail());
|
26
|
repo.setCountryName(from.getCountryName());
|
27
|
repo.setCountryCode(from.getCountryCode());
|
28
|
repo.setOrganization(from.getOrganization());
|
29
|
repo.setLatitude(from.getLatitude());
|
30
|
repo.setLongitude(from.getLongitude());
|
31
|
repo.setTimezone(from.getTimezone());
|
32
|
repo.setNamespacePrefix(from.getNamespacePrefix());
|
33
|
repo.setOdNumberOfItems(from.getOdNumberOfItems());
|
34
|
repo.setOdNumberOfItemsDate(from.getOdNumberOfItemsDate());
|
35
|
repo.setOdPolicies(from.getOdPolicies());
|
36
|
repo.setOdLanguages(from.getOdLanguages());
|
37
|
repo.setOdContentTypes(from.getOdContentTypes());
|
38
|
repo.setCollectedFrom(from.getCollectedFrom());
|
39
|
repo.setInferred(from.isInferred());
|
40
|
repo.setDeletedByInference(from.isDeletedByInference());
|
41
|
repo.setTrust(from.getTrust());
|
42
|
repo.setTrust(0.9);
|
43
|
repo.setInferenceProvenance(from.getInferenceProvenance());
|
44
|
repo.setDateOfValidation(from.getDateOfValidation());
|
45
|
repo.setDatasourceClass(from.getDatasourceClass());
|
46
|
repo.setProvenanceActionClass(from.getProvenanceActionClass());
|
47
|
repo.setDateOfCollection(from.getDateOfCollection());
|
48
|
repo.setTypology(from.getTypology());
|
49
|
repo.setActivationId(from.getActivationId());
|
50
|
repo.setMergehomonyms(from.isMergehomonyms());
|
51
|
repo.setDescription(from.getDescription());
|
52
|
repo.setReleaseStartDate(from.getReleaseStartDate());
|
53
|
repo.setReleaseEndDate(from.getReleaseEndDate());
|
54
|
repo.setMissionStatementUrl(from.getMissionStatementUrl());
|
55
|
repo.setDatabaseAccessRestriction(from.getDatabaseAccessRestriction());
|
56
|
repo.setDataProvider(from.isDataProvider());
|
57
|
repo.setServiceProvider(from.isServiceProvider());
|
58
|
repo.setDatabaseAccessType(from.getDatabaseAccessType());
|
59
|
repo.setDataUploadType(from.getDataUploadType());
|
60
|
repo.setDatabaseAccessRestriction(from.getDatabaseAccessRestriction());
|
61
|
repo.setDataUploadRestriction(from.getDataUploadRestriction());
|
62
|
repo.setVersioning(from.isVersioning());
|
63
|
repo.setCitationGuidelineUrl(from.getCitationGuidelineUrl());
|
64
|
repo.setQualityManagementKind(from.getQualityManagementKind());
|
65
|
repo.setPidSystems(from.getPidSystems());
|
66
|
repo.setCertificates(from.getCertificates());
|
67
|
repo.setAggregator(from.getAggregator());
|
68
|
repo.setIssn(from.getIssn());
|
69
|
repo.setEissn(from.getEissn());
|
70
|
repo.setLissn(from.getLissn());
|
71
|
repo.setRegisteredBy(from.getRegisteredBy());
|
72
|
|
73
|
repo.setInterfaces(convertToValIfaceList(from.getInterfaces()));
|
74
|
|
75
|
//TODO remove it when isRegistered is provided my DMS
|
76
|
repo.setRegistered(false);
|
77
|
for (RepositoryInterface iFace : repo.getInterfaces()) {
|
78
|
if (!iFace.getCompliance().equalsIgnoreCase("UNKNOWN")) {
|
79
|
repo.setRegistered(true);
|
80
|
break;
|
81
|
}
|
82
|
}
|
83
|
|
84
|
String type = "unknown";
|
85
|
if (repo.getCollectedFrom() != null) {
|
86
|
if (repo.getCollectedFrom().equals("openaire____::opendoar"))
|
87
|
type = "opendoar";
|
88
|
else if (repo.getCollectedFrom().equals("openaire____::re3data"))
|
89
|
type = "re3data";
|
90
|
else {
|
91
|
if (repo.getId().startsWith("openaire____::issn"))
|
92
|
type = "journal";
|
93
|
else
|
94
|
type = "aggregator";
|
95
|
}
|
96
|
}
|
97
|
repo.setDatasourceType(type);
|
98
|
|
99
|
return repo;
|
100
|
}
|
101
|
|
102
|
public static DatasourceDesc convertToDsmRepo(Repository from) {
|
103
|
logger.debug("Converting the repository to Dsm format");
|
104
|
DatasourceDesc repo = new DatasourceDesc();
|
105
|
repo.setId(from.getId());
|
106
|
repo.setOfficialName(from.getOfficialName());
|
107
|
repo.setEnglishName(from.getEnglishName());
|
108
|
repo.setWebsiteUrl(from.getWebsiteUrl());
|
109
|
repo.setLogoUrl(from.getLogoUrl());
|
110
|
repo.setContactEmail(from.getContactEmail());
|
111
|
repo.setCountryName(from.getCountryName());
|
112
|
repo.setCountryCode(from.getCountryCode());
|
113
|
repo.setOrganization(from.getOrganization());
|
114
|
repo.setLatitude(from.getLatitude());
|
115
|
repo.setLongitude(from.getLongitude());
|
116
|
repo.setTimezone(from.getTimezone());
|
117
|
repo.setNamespacePrefix(from.getNamespacePrefix());
|
118
|
repo.setOdNumberOfItems(from.getOdNumberOfItems());
|
119
|
repo.setOdNumberOfItemsDate(from.getOdNumberOfItemsDate());
|
120
|
repo.setOdPolicies(from.getOdPolicies());
|
121
|
repo.setOdLanguages(from.getOdLanguages());
|
122
|
repo.setOdContentTypes(from.getOdContentTypes());
|
123
|
repo.setCollectedFrom(from.getCollectedFrom());
|
124
|
repo.setInferred(from.getInferred());
|
125
|
repo.setInferred(false);
|
126
|
repo.setDeletedByInference(from.getDeletedByInference());
|
127
|
repo.setDeletedByInference(false);
|
128
|
repo.setTrust(from.getTrust());
|
129
|
repo.setTrust(0.9);
|
130
|
repo.setInferenceProvenance(from.getInferenceProvenance());
|
131
|
repo.setDateOfValidation(from.getDateOfValidation());
|
132
|
repo.setDatasourceClass(from.getDatasourceClass());
|
133
|
repo.setProvenanceActionClass(from.getProvenanceActionClass());
|
134
|
repo.setDateOfCollection(from.getDateOfCollection());
|
135
|
repo.setTypology(from.getTypology());
|
136
|
repo.setActivationId(from.getActivationId());
|
137
|
repo.setMergehomonyms(from.getMergehomonyms());
|
138
|
repo.setMergehomonyms(true);
|
139
|
repo.setDescription(from.getDescription());
|
140
|
repo.setReleaseStartDate(from.getReleaseStartDate());
|
141
|
repo.setReleaseEndDate(from.getReleaseEndDate());
|
142
|
repo.setMissionStatementUrl(from.getMissionStatementUrl());
|
143
|
repo.setDatabaseAccessRestriction(from.getDatabaseAccessRestriction());
|
144
|
repo.setDataProvider(from.getDataProvider());
|
145
|
repo.setDataProvider(false);
|
146
|
repo.setServiceProvider(from.getServiceProvider());
|
147
|
repo.setServiceProvider(false);
|
148
|
repo.setDatabaseAccessType(from.getDatabaseAccessType());
|
149
|
repo.setDataUploadType(from.getDataUploadType());
|
150
|
repo.setDatabaseAccessRestriction(from.getDatabaseAccessRestriction());
|
151
|
repo.setDataUploadRestriction(from.getDataUploadRestriction());
|
152
|
repo.setVersioning(from.getVersioning());
|
153
|
repo.setVersioning(false);
|
154
|
repo.setCitationGuidelineUrl(from.getCitationGuidelineUrl());
|
155
|
repo.setQualityManagementKind(from.getQualityManagementKind());
|
156
|
repo.setPidSystems(from.getPidSystems());
|
157
|
repo.setCertificates(from.getCertificates());
|
158
|
repo.setAggregator(from.getAggregator());
|
159
|
repo.setIssn(from.getIssn());
|
160
|
repo.setEissn(from.getEissn());
|
161
|
repo.setLissn(from.getLissn());
|
162
|
repo.setRegisteredBy(from.getRegisteredBy());
|
163
|
|
164
|
repo.setInterfaces(convertToDsmIfaceList(from.getInterfaces()));
|
165
|
|
166
|
return repo;
|
167
|
}
|
168
|
|
169
|
public static RepositoryInterface convertToValIface(IfaceDesc from) {
|
170
|
logger.debug("Converting the interface to Validator format");
|
171
|
RepositoryInterface newIface = new RepositoryInterface();
|
172
|
if (from == null) {
|
173
|
logger.debug("iface 'from' iss null!!");
|
174
|
} else {
|
175
|
|
176
|
if (from.getId() == null) {
|
177
|
logger.debug("iface ID is null ");
|
178
|
} else {
|
179
|
logger.debug("iface ID: " + from.getId());
|
180
|
}
|
181
|
newIface.setId(from.getId());
|
182
|
newIface.setTypology(from.getTypology());
|
183
|
newIface.setCompliance(from.getCompliance());
|
184
|
newIface.setBaseUrl(from.getBaseUrl());
|
185
|
newIface.setAccessProtocol(from.getAccessProtocol());
|
186
|
newIface.setActive(from.getActive());
|
187
|
newIface.setContentDescription(from.getContentDescription());
|
188
|
newIface.setRemovable(from.getRemovable());
|
189
|
newIface.setExtraFields(from.getExtraFields());
|
190
|
newIface.setAccessParams(from.getAccessParams());
|
191
|
}
|
192
|
return newIface;
|
193
|
|
194
|
}
|
195
|
|
196
|
public static IfaceDesc convertToDsmIface(RepositoryInterface from) {
|
197
|
logger.debug("Converting the interface to Dsm format");
|
198
|
IfaceDesc newIface = new IfaceDesc();
|
199
|
try {
|
200
|
newIface.setId(from.getId());
|
201
|
newIface.setTypology(from.getTypology());
|
202
|
newIface.setCompliance(from.getCompliance());
|
203
|
newIface.setBaseUrl(from.getBaseUrl());
|
204
|
newIface.setAccessProtocol(from.getAccessProtocol());
|
205
|
newIface.setActive(from.isActive());
|
206
|
newIface.setContentDescription(from.getContentDescription());
|
207
|
newIface.setRemovable(from.isRemovable());
|
208
|
newIface.setExtraFields(from.getExtraFields());
|
209
|
newIface.setAccessParams(from.getAccessParams());
|
210
|
|
211
|
// logger.error("api_id: " + newIface.getId());
|
212
|
// logger.error("baseUrl: " + newIface.getBaseUrl());
|
213
|
// logger.error("format: " + newIface.getAccessParams().get("FORMAT"));
|
214
|
// logger.error("set: " + newIface.getAccessParams().get("SET"));
|
215
|
// logger.error("typology: " + newIface.getTypology());
|
216
|
// logger.error("compliance: " + newIface.getCompliance());
|
217
|
// logger.error("protocol: " + newIface.getAccessProtocol());
|
218
|
// logger.error("description: " + newIface.getContentDescription());
|
219
|
// logger.error("removable: " + newIface.getRemovable());
|
220
|
// logger.error("active: " + newIface.getActive());
|
221
|
} catch (Exception e) {
|
222
|
logger.error("Converting the interface to Dsm format " + e);
|
223
|
}
|
224
|
return newIface;
|
225
|
|
226
|
}
|
227
|
|
228
|
public static List<RepositoryInterface> convertToValIfaceList(List<IfaceDesc> fromList) {
|
229
|
logger.debug("Converting the interfaces to Validation format");
|
230
|
logger.debug("Number of interfaces to be converted: " + fromList.size());
|
231
|
List<RepositoryInterface> interfaces = new ArrayList<RepositoryInterface>();
|
232
|
for (IfaceDesc from : fromList) {
|
233
|
if (from == null) {
|
234
|
logger.debug("iface is null: ");
|
235
|
}
|
236
|
interfaces.add(convertToValIface(from));
|
237
|
}
|
238
|
return interfaces;
|
239
|
}
|
240
|
|
241
|
public static List<IfaceDesc> convertToDsmIfaceList(List<RepositoryInterface> fromList) {
|
242
|
logger.debug("Converting the interfaces to dsm format");
|
243
|
logger.debug("Number of interfaces to be converted: " + fromList.size());
|
244
|
List<IfaceDesc> interfaces = new ArrayList<IfaceDesc>();
|
245
|
for (RepositoryInterface from : fromList) {
|
246
|
interfaces.add(convertToDsmIface(from));
|
247
|
}
|
248
|
|
249
|
return interfaces;
|
250
|
}
|
251
|
|
252
|
public static List<Repository> convertToValRepoList(List<DatasourceDesc> fromList) {
|
253
|
logger.debug("Converting the repositories to Validation format");
|
254
|
logger.debug("Number of repositories to be converted: " + fromList.size());
|
255
|
List<Repository> retList = new ArrayList<Repository>();
|
256
|
for (DatasourceDesc from : fromList) {
|
257
|
retList.add(convertToValRepo(from));
|
258
|
}
|
259
|
return retList;
|
260
|
}
|
261
|
|
262
|
public static List<DatasourceDesc> convertToDsmRepoList(List<Repository> fromList) {
|
263
|
logger.debug("Converting the repositories to Dsm format");
|
264
|
logger.debug("Number of repositories to be converted: " + fromList.size());
|
265
|
List<DatasourceDesc> retList = new ArrayList<DatasourceDesc>();
|
266
|
for (Repository from : fromList) {
|
267
|
retList.add(convertToDsmRepo(from));
|
268
|
}
|
269
|
return retList;
|
270
|
}
|
271
|
|
272
|
|
273
|
}
|